rme 0.0.13 → 0.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.mjs +201 -1213
- package/dist/index.mjs.map +4 -4
- package/package.json +14 -8
package/dist/index.mjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../node_modules/escape-string-regexp/index.js", "../node_modules/function-bind/implementation.js", "../node_modules/function-bind/index.js", "../node_modules/has-symbols/shams.js", "../node_modules/has-symbols/index.js", "../node_modules/has-proto/index.js", "../node_modules/has/src/index.js", "../node_modules/get-intrinsic/index.js", "../node_modules/call-bind/index.js", "../node_modules/object-keys/isArguments.js", "../node_modules/object-keys/implementation.js", "../node_modules/object-keys/index.js", "../node_modules/has-property-descriptors/index.js", "../node_modules/define-properties/index.js", "../node_modules/call-bind/callBound.js", "../node_modules/es-abstract/helpers/IsArray.js", "../node_modules/es-abstract/2022/IsArray.js", "../node_modules/es-abstract/2022/Call.js", "../node_modules/object-inspect/index.js", "../node_modules/es-abstract/2022/IsPropertyKey.js", "../node_modules/es-abstract/5/Type.js", "../node_modules/es-abstract/2022/Type.js", "../node_modules/es-abstract/2022/Get.js", "../node_modules/es-abstract/2022/GetV.js", "../node_modules/is-callable/index.js", "../node_modules/es-abstract/2022/IsCallable.js", "../node_modules/es-abstract/2022/GetMethod.js", "../node_modules/has-tostringtag/shams.js", "../node_modules/is-regex/index.js", "../node_modules/es-abstract/2022/ToBoolean.js", "../node_modules/es-abstract/2022/IsRegExp.js", "../node_modules/es-abstract/2022/ToString.js", "../node_modules/es-abstract/5/CheckObjectCoercible.js", "../node_modules/es-abstract/2022/RequireObjectCoercible.js", "../node_modules/functions-have-names/index.js", "../node_modules/regexp.prototype.flags/implementation.js", "../node_modules/regexp.prototype.flags/polyfill.js", "../node_modules/regexp.prototype.flags/shim.js", "../node_modules/regexp.prototype.flags/index.js", "../node_modules/es-abstract/helpers/isLeadingSurrogate.js", "../node_modules/es-abstract/helpers/isTrailingSurrogate.js", "../node_modules/es-abstract/2022/UTF16SurrogatePairToCodePoint.js", "../node_modules/es-abstract/2022/CodePointAt.js", "../node_modules/es-abstract/helpers/isNaN.js", "../node_modules/es-abstract/helpers/isFinite.js", "../node_modules/es-abstract/helpers/isInteger.js", "../node_modules/es-abstract/helpers/maxSafeInteger.js", "../node_modules/es-abstract/2022/AdvanceStringIndex.js", "../node_modules/es-abstract/2022/CreateIterResultObject.js", "../node_modules/es-abstract/helpers/DefineOwnProperty.js", "../node_modules/es-abstract/helpers/isMatchRecord.js", "../node_modules/es-abstract/helpers/assertRecord.js", "../node_modules/es-abstract/helpers/fromPropertyDescriptor.js", "../node_modules/es-abstract/2022/FromPropertyDescriptor.js", "../node_modules/es-abstract/2022/IsDataDescriptor.js", "../node_modules/es-abstract/2022/SameValue.js", "../node_modules/es-abstract/2022/CreateMethodProperty.js", "../node_modules/es-abstract/helpers/forEach.js", "../node_modules/side-channel/index.js", "../node_modules/internal-slot/index.js", "../node_modules/es-abstract/2022/OrdinaryObjectCreate.js", "../node_modules/es-abstract/2022/RegExpExec.js", "../node_modules/es-abstract/2022/Set.js", "../node_modules/es-abstract/2022/abs.js", "../node_modules/es-abstract/2022/floor.js", "../node_modules/es-abstract/helpers/isPrimitive.js", "../node_modules/es-to-primitive/helpers/isPrimitive.js", "../node_modules/is-date-object/index.js", "../node_modules/is-symbol/index.js", "../node_modules/es-to-primitive/es2015.js", "../node_modules/es-abstract/2022/ToPrimitive.js", "../node_modules/safe-regex-test/index.js", "../node_modules/string.prototype.trim/implementation.js", "../node_modules/string.prototype.trim/polyfill.js", "../node_modules/string.prototype.trim/shim.js", "../node_modules/string.prototype.trim/index.js", "../node_modules/es-abstract/2022/StringToNumber.js", "../node_modules/es-abstract/2022/ToNumber.js", "../node_modules/es-abstract/helpers/sign.js", "../node_modules/es-abstract/2022/ToIntegerOrInfinity.js", "../node_modules/es-abstract/2022/ToLength.js", "../node_modules/es-set-tostringtag/index.js", "../node_modules/es-abstract/2022/CreateRegExpStringIterator.js", "../node_modules/es-abstract/GetIntrinsic.js", "../node_modules/es-abstract/helpers/isPropertyDescriptor.js", "../node_modules/es-abstract/2022/IsAccessorDescriptor.js", "../node_modules/es-abstract/2022/ToPropertyDescriptor.js", "../node_modules/es-abstract/2022/DefinePropertyOrThrow.js", "../node_modules/es-abstract/2022/IsConstructor.js", "../node_modules/es-abstract/2022/SpeciesConstructor.js", "../node_modules/string.prototype.matchall/regexp-matchall.js", "../node_modules/string.prototype.matchall/polyfill-regexp-matchall.js", "../node_modules/string.prototype.matchall/implementation.js", "../node_modules/string.prototype.matchall/polyfill.js", "../node_modules/string.prototype.matchall/shim.js", "../node_modules/string.prototype.matchall/index.js", "../node_modules/make-error/index.js", "../node_modules/deepmerge/dist/cjs.js", "../node_modules/fast-deep-equal/index.js", "../node_modules/isobject/index.js", "../node_modules/is-extendable/node_modules/is-plain-object/index.js", "../node_modules/is-extendable/index.js", "../node_modules/object.omit/index.js", "../node_modules/object.pick/index.js", "../node_modules/querystringify/index.js", "../src/components/SourceEditor/index.tsx", "../src/components/Text/index.tsx", "../src/components/SourceEditor/delegate.ts", "../src/transform/parser.ts", "../src/transform/markdown-it-list-checkbox.ts", "../src/transform/markdown-it-html-inline.ts", "../src/utils/html.ts", "../
|
|
4
|
-
"sourcesContent": ["'use strict';\n\nmodule.exports = string => {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it\u2019s always valid, and a \\unnnn escape when the simpler form would be disallowed by Unicode patterns\u2019 stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n};\n", "'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n", "import __import___implementation from \"./implementation\";'use strict';\n\nvar implementation = __import___implementation;\n\nmodule.exports = Function.prototype.bind || implementation;\n", "'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n", "import __import___shams from \"./shams\";'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = __import___shams;\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n", "'use strict';\n\nvar test = {\n\tfoo: {}\n};\n\nvar $Object = Object;\n\nmodule.exports = function hasProto() {\n\treturn { __proto__: test }.foo === test.foo && !({ __proto__: null } instanceof $Object);\n};\n", "import __import_functionBind from \"function-bind\";'use strict';\n\nvar bind = __import_functionBind;\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n", "import __import_hasSymbols from \"has-symbols\";import __import_hasProto from \"has-proto\";import __import_functionBind from \"function-bind\";import __import_has from \"has\";'use strict';\n\nvar undefined;\n\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = __import_hasSymbols();\nvar hasProto = __import_hasProto();\n\nvar getProto = Object.getPrototypeOf || (\n\thasProto\n\t\t? function (x) { return x.__proto__; } // eslint-disable-line no-proto\n\t\t: null\n);\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%ReferenceError%': ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = __import_functionBind;\nvar hasOwn = __import_has;\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\nvar $exec = bind.call(Function.call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n", "import __import_functionBind from \"function-bind\";import __import_getIntrinsic from \"get-intrinsic\";'use strict';\n\nvar bind = __import_functionBind;\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = $reflectApply(bind, $call, arguments);\n\tif ($gOPD && $defineProperty) {\n\t\tvar desc = $gOPD(func, 'length');\n\t\tif (desc.configurable) {\n\t\t\t// original length, plus the receiver, minus any additional arguments (after the receiver)\n\t\t\t$defineProperty(\n\t\t\t\tfunc,\n\t\t\t\t'length',\n\t\t\t\t{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }\n\t\t\t);\n\t\t}\n\t}\n\treturn func;\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n", "'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n", "import __import___isArguments from \"./isArguments\";'use strict';\n\nvar keysShim;\nif (!Object.keys) {\n\t// modified from https://github.com/es-shims/es5-shim\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\tvar isArgs = __import___isArguments; // eslint-disable-line global-require\n\tvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\tvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n\tvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n\tvar dontEnums = [\n\t\t'toString',\n\t\t'toLocaleString',\n\t\t'valueOf',\n\t\t'hasOwnProperty',\n\t\t'isPrototypeOf',\n\t\t'propertyIsEnumerable',\n\t\t'constructor'\n\t];\n\tvar equalsConstructorPrototype = function (o) {\n\t\tvar ctor = o.constructor;\n\t\treturn ctor && ctor.prototype === o;\n\t};\n\tvar excludedKeys = {\n\t\t$applicationCache: true,\n\t\t$console: true,\n\t\t$external: true,\n\t\t$frame: true,\n\t\t$frameElement: true,\n\t\t$frames: true,\n\t\t$innerHeight: true,\n\t\t$innerWidth: true,\n\t\t$onmozfullscreenchange: true,\n\t\t$onmozfullscreenerror: true,\n\t\t$outerHeight: true,\n\t\t$outerWidth: true,\n\t\t$pageXOffset: true,\n\t\t$pageYOffset: true,\n\t\t$parent: true,\n\t\t$scrollLeft: true,\n\t\t$scrollTop: true,\n\t\t$scrollX: true,\n\t\t$scrollY: true,\n\t\t$self: true,\n\t\t$webkitIndexedDB: true,\n\t\t$webkitStorageInfo: true,\n\t\t$window: true\n\t};\n\tvar hasAutomationEqualityBug = (function () {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined') { return false; }\n\t\tfor (var k in window) {\n\t\t\ttry {\n\t\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}());\n\tvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t}\n\t\ttry {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tkeysShim = function keys(object) {\n\t\tvar isObject = object !== null && typeof object === 'object';\n\t\tvar isFunction = toStr.call(object) === '[object Function]';\n\t\tvar isArguments = isArgs(object);\n\t\tvar isString = isObject && toStr.call(object) === '[object String]';\n\t\tvar theKeys = [];\n\n\t\tif (!isObject && !isFunction && !isArguments) {\n\t\t\tthrow new TypeError('Object.keys called on a non-object');\n\t\t}\n\n\t\tvar skipProto = hasProtoEnumBug && isFunction;\n\t\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n", "import __import___isArguments from \"./isArguments\";import __import___implementation from \"./implementation\";'use strict';\n\nvar slice = Array.prototype.slice;\nvar isArgs = __import___isArguments;\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : __import___implementation;\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) { // eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n", "import __import_getIntrinsic from \"get-intrinsic\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\tif ($defineProperty) {\n\t\ttry {\n\t\t\t$defineProperty({}, 'a', { value: 1 });\n\t\t\treturn true;\n\t\t} catch (e) {\n\t\t\t// IE 8 has a broken defineProperty\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn false;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!hasPropertyDescriptors()) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n", "import __import_objectKeys from \"object-keys\";import __import_hasPropertyDescriptors from \"has-property-descriptors\";'use strict';\n\nvar keys = __import_objectKeys;\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar origDefineProperty = Object.defineProperty;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar hasPropertyDescriptors = __import_hasPropertyDescriptors();\n\nvar supportsDescriptors = origDefineProperty && hasPropertyDescriptors;\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object) {\n\t\tif (predicate === true) {\n\t\t\tif (object[name] === value) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else if (!isFunction(predicate) || !predicate()) {\n\t\t\treturn;\n\t\t}\n\t}\n\tif (supportsDescriptors) {\n\t\torigDefineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: value,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\tobject[name] = value; // eslint-disable-line no-param-reassign\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import___ from \"./\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar callBind = __import___;\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import_callBind_callBound from \"call-bind/callBound\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $Array = GetIntrinsic('%Array%');\n\n// eslint-disable-next-line global-require\nvar toStr = !$Array.isArray && __import_callBind_callBound('Object.prototype.toString');\n\nmodule.exports = $Array.isArray || function IsArray(argument) {\n\treturn toStr(argument) === '[object Array]';\n};\n", "import __import____helpers_IsArray from \"../helpers/IsArray\";'use strict';\n\n// https://262.ecma-international.org/6.0/#sec-isarray\nmodule.exports = __import____helpers_IsArray;\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import_callBind_callBound from \"call-bind/callBound\";import __import___IsArray from \"./IsArray\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\nvar callBound = __import_callBind_callBound;\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar IsArray = __import___IsArray;\n\nvar $apply = GetIntrinsic('%Reflect.apply%', true) || callBound('Function.prototype.apply');\n\n// https://262.ecma-international.org/6.0/#sec-call\n\nmodule.exports = function Call(F, V) {\n\tvar argumentsList = arguments.length > 2 ? arguments[2] : [];\n\tif (!IsArray(argumentsList)) {\n\t\tthrow new $TypeError('Assertion failed: optional `argumentsList`, if provided, must be a List');\n\t}\n\treturn $apply(F, V, argumentsList);\n};\n", "import __import___util_inspect from \"./util.inspect\";var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar $match = String.prototype.match;\nvar $slice = String.prototype.slice;\nvar $replace = String.prototype.replace;\nvar $toUpperCase = String.prototype.toUpperCase;\nvar $toLowerCase = String.prototype.toLowerCase;\nvar $test = RegExp.prototype.test;\nvar $concat = Array.prototype.concat;\nvar $join = Array.prototype.join;\nvar $arrSlice = Array.prototype.slice;\nvar $floor = Math.floor;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\n// ie, `has-tostringtag/shams\nvar toStringTag = typeof Symbol === 'function' && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? 'object' : 'symbol')\n ? Symbol.toStringTag\n : null;\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (\n [].__proto__ === Array.prototype // eslint-disable-line no-proto\n ? function (O) {\n return O.__proto__; // eslint-disable-line no-proto\n }\n : null\n);\n\nfunction addNumericSeparator(num, str) {\n if (\n num === Infinity\n || num === -Infinity\n || num !== num\n || (num && num > -1000 && num < 1000)\n || $test.call(/e/, str)\n ) {\n return str;\n }\n var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;\n if (typeof num === 'number') {\n var int = num < 0 ? -$floor(-num) : $floor(num); // trunc(num)\n if (int !== num) {\n var intStr = String(int);\n var dec = $slice.call(str, intStr.length + 1);\n return $replace.call(intStr, sepRegex, '$&_') + '.' + $replace.call($replace.call(dec, /([0-9]{3})/g, '$&_'), /_$/, '');\n }\n }\n return $replace.call(str, sepRegex, '$&_');\n}\n\nvar utilInspect = __import___util_inspect;\nvar inspectCustom = utilInspect.custom;\nvar inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null;\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n var opts = options || {};\n\n if (has(opts, 'quoteStyle') && (opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double')) {\n throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n }\n if (\n has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'\n ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity\n : opts.maxStringLength !== null\n )\n ) {\n throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n }\n var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n }\n\n if (\n has(opts, 'indent')\n && opts.indent !== null\n && opts.indent !== '\\t'\n && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)\n ) {\n throw new TypeError('option \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n }\n if (has(opts, 'numericSeparator') && typeof opts.numericSeparator !== 'boolean') {\n throw new TypeError('option \"numericSeparator\", if provided, must be `true` or `false`');\n }\n var numericSeparator = opts.numericSeparator;\n\n if (typeof obj === 'undefined') {\n return 'undefined';\n }\n if (obj === null) {\n return 'null';\n }\n if (typeof obj === 'boolean') {\n return obj ? 'true' : 'false';\n }\n\n if (typeof obj === 'string') {\n return inspectString(obj, opts);\n }\n if (typeof obj === 'number') {\n if (obj === 0) {\n return Infinity / obj > 0 ? '0' : '-0';\n }\n var str = String(obj);\n return numericSeparator ? addNumericSeparator(obj, str) : str;\n }\n if (typeof obj === 'bigint') {\n var bigIntStr = String(obj) + 'n';\n return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;\n }\n\n var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n if (typeof depth === 'undefined') { depth = 0; }\n if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n return isArray(obj) ? '[Array]' : '[Object]';\n }\n\n var indent = getIndent(opts, depth);\n\n if (typeof seen === 'undefined') {\n seen = [];\n } else if (indexOf(seen, obj) >= 0) {\n return '[Circular]';\n }\n\n function inspect(value, from, noIndent) {\n if (from) {\n seen = $arrSlice.call(seen);\n seen.push(from);\n }\n if (noIndent) {\n var newOpts = {\n depth: opts.depth\n };\n if (has(opts, 'quoteStyle')) {\n newOpts.quoteStyle = opts.quoteStyle;\n }\n return inspect_(value, newOpts, depth + 1, seen);\n }\n return inspect_(value, opts, depth + 1, seen);\n }\n\n if (typeof obj === 'function' && !isRegExp(obj)) { // in older engines, regexes are callable\n var name = nameOf(obj);\n var keys = arrObjKeys(obj, inspect);\n return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + $join.call(keys, ', ') + ' }' : '');\n }\n if (isSymbol(obj)) {\n var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n }\n if (isElement(obj)) {\n var s = '<' + $toLowerCase.call(String(obj.nodeName));\n var attrs = obj.attributes || [];\n for (var i = 0; i < attrs.length; i++) {\n s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n }\n s += '>';\n if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n s += '</' + $toLowerCase.call(String(obj.nodeName)) + '>';\n return s;\n }\n if (isArray(obj)) {\n if (obj.length === 0) { return '[]'; }\n var xs = arrObjKeys(obj, inspect);\n if (indent && !singleLineValues(xs)) {\n return '[' + indentedJoin(xs, indent) + ']';\n }\n return '[ ' + $join.call(xs, ', ') + ' ]';\n }\n if (isError(obj)) {\n var parts = arrObjKeys(obj, inspect);\n if (!('cause' in Error.prototype) && 'cause' in obj && !isEnumerable.call(obj, 'cause')) {\n return '{ [' + String(obj) + '] ' + $join.call($concat.call('[cause]: ' + inspect(obj.cause), parts), ', ') + ' }';\n }\n if (parts.length === 0) { return '[' + String(obj) + ']'; }\n return '{ [' + String(obj) + '] ' + $join.call(parts, ', ') + ' }';\n }\n if (typeof obj === 'object' && customInspect) {\n if (inspectSymbol && typeof obj[inspectSymbol] === 'function' && utilInspect) {\n return utilInspect(obj, { depth: maxDepth - depth });\n } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n return obj.inspect();\n }\n }\n if (isMap(obj)) {\n var mapParts = [];\n if (mapForEach) {\n mapForEach.call(obj, function (value, key) {\n mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n });\n }\n return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n }\n if (isSet(obj)) {\n var setParts = [];\n if (setForEach) {\n setForEach.call(obj, function (value) {\n setParts.push(inspect(value, obj));\n });\n }\n return collectionOf('Set', setSize.call(obj), setParts, indent);\n }\n if (isWeakMap(obj)) {\n return weakCollectionOf('WeakMap');\n }\n if (isWeakSet(obj)) {\n return weakCollectionOf('WeakSet');\n }\n if (isWeakRef(obj)) {\n return weakCollectionOf('WeakRef');\n }\n if (isNumber(obj)) {\n return markBoxed(inspect(Number(obj)));\n }\n if (isBigInt(obj)) {\n return markBoxed(inspect(bigIntValueOf.call(obj)));\n }\n if (isBoolean(obj)) {\n return markBoxed(booleanValueOf.call(obj));\n }\n if (isString(obj)) {\n return markBoxed(inspect(String(obj)));\n }\n if (!isDate(obj) && !isRegExp(obj)) {\n var ys = arrObjKeys(obj, inspect);\n var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n var protoTag = obj instanceof Object ? '' : 'null prototype';\n var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? 'Object' : '';\n var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n var tag = constructorTag + (stringTag || protoTag ? '[' + $join.call($concat.call([], stringTag || [], protoTag || []), ': ') + '] ' : '');\n if (ys.length === 0) { return tag + '{}'; }\n if (indent) {\n return tag + '{' + indentedJoin(ys, indent) + '}';\n }\n return tag + '{ ' + $join.call(ys, ', ') + ' }';\n }\n return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '\"' : \"'\";\n return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n return $replace.call(String(s), /\"/g, '"');\n}\n\nfunction isArray(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isDate(obj) { return toStr(obj) === '[object Date]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isError(obj) { return toStr(obj) === '[object Error]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isString(obj) { return toStr(obj) === '[object String]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\n\n// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\nfunction isSymbol(obj) {\n if (hasShammedSymbols) {\n return obj && typeof obj === 'object' && obj instanceof Symbol;\n }\n if (typeof obj === 'symbol') {\n return true;\n }\n if (!obj || typeof obj !== 'object' || !symToString) {\n return false;\n }\n try {\n symToString.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isBigInt(obj) {\n if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n return false;\n }\n try {\n bigIntValueOf.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n if (f.name) { return f.name; }\n var m = $match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n if (m) { return m[1]; }\n return null;\n}\n\nfunction indexOf(xs, x) {\n if (xs.indexOf) { return xs.indexOf(x); }\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) { return i; }\n }\n return -1;\n}\n\nfunction isMap(x) {\n if (!mapSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n mapSize.call(x);\n try {\n setSize.call(x);\n } catch (s) {\n return true;\n }\n return x instanceof Map; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakMap(x) {\n if (!weakMapHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakMapHas.call(x, weakMapHas);\n try {\n weakSetHas.call(x, weakSetHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakRef(x) {\n if (!weakRefDeref || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakRefDeref.call(x);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isSet(x) {\n if (!setSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n setSize.call(x);\n try {\n mapSize.call(x);\n } catch (m) {\n return true;\n }\n return x instanceof Set; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakSet(x) {\n if (!weakSetHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakSetHas.call(x, weakSetHas);\n try {\n weakMapHas.call(x, weakMapHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isElement(x) {\n if (!x || typeof x !== 'object') { return false; }\n if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n return true;\n }\n return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n if (str.length > opts.maxStringLength) {\n var remaining = str.length - opts.maxStringLength;\n var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;\n }\n // eslint-disable-next-line no-control-regex\n var s = $replace.call($replace.call(str, /(['\\\\])/g, '\\\\$1'), /[\\x00-\\x1f]/g, lowbyte);\n return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n var n = c.charCodeAt(0);\n var x = {\n 8: 'b',\n 9: 't',\n 10: 'n',\n 12: 'f',\n 13: 'r'\n }[n];\n if (x) { return '\\\\' + x; }\n return '\\\\x' + (n < 0x10 ? '0' : '') + $toUpperCase.call(n.toString(16));\n}\n\nfunction markBoxed(str) {\n return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ', ');\n return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n for (var i = 0; i < xs.length; i++) {\n if (indexOf(xs[i], '\\n') >= 0) {\n return false;\n }\n }\n return true;\n}\n\nfunction getIndent(opts, depth) {\n var baseIndent;\n if (opts.indent === '\\t') {\n baseIndent = '\\t';\n } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n baseIndent = $join.call(Array(opts.indent + 1), ' ');\n } else {\n return null;\n }\n return {\n base: baseIndent,\n prev: $join.call(Array(depth + 1), baseIndent)\n };\n}\n\nfunction indentedJoin(xs, indent) {\n if (xs.length === 0) { return ''; }\n var lineJoiner = '\\n' + indent.prev + indent.base;\n return lineJoiner + $join.call(xs, ',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n var isArr = isArray(obj);\n var xs = [];\n if (isArr) {\n xs.length = obj.length;\n for (var i = 0; i < obj.length; i++) {\n xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n }\n }\n var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n var symMap;\n if (hasShammedSymbols) {\n symMap = {};\n for (var k = 0; k < syms.length; k++) {\n symMap['$' + syms[k]] = syms[k];\n }\n }\n\n for (var key in obj) { // eslint-disable-line no-restricted-syntax\n if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n continue; // eslint-disable-line no-restricted-syntax, no-continue\n } else if ($test.call(/[^\\w$]/, key)) {\n xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n } else {\n xs.push(key + ': ' + inspect(obj[key], obj));\n }\n }\n if (typeof gOPS === 'function') {\n for (var j = 0; j < syms.length; j++) {\n if (isEnumerable.call(obj, syms[j])) {\n xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n }\n }\n }\n return xs;\n}\n", "'use strict';\n\n// https://262.ecma-international.org/6.0/#sec-ispropertykey\n\nmodule.exports = function IsPropertyKey(argument) {\n\treturn typeof argument === 'string' || typeof argument === 'symbol';\n};\n", "'use strict';\n\n// https://262.ecma-international.org/5.1/#sec-8\n\nmodule.exports = function Type(x) {\n\tif (x === null) {\n\t\treturn 'Null';\n\t}\n\tif (typeof x === 'undefined') {\n\t\treturn 'Undefined';\n\t}\n\tif (typeof x === 'function' || typeof x === 'object') {\n\t\treturn 'Object';\n\t}\n\tif (typeof x === 'number') {\n\t\treturn 'Number';\n\t}\n\tif (typeof x === 'boolean') {\n\t\treturn 'Boolean';\n\t}\n\tif (typeof x === 'string') {\n\t\treturn 'String';\n\t}\n};\n", "import __import____5_Type from \"../5/Type\";'use strict';\n\nvar ES5Type = __import____5_Type;\n\n// https://262.ecma-international.org/11.0/#sec-ecmascript-data-types-and-values\n\nmodule.exports = function Type(x) {\n\tif (typeof x === 'symbol') {\n\t\treturn 'Symbol';\n\t}\n\tif (typeof x === 'bigint') {\n\t\treturn 'BigInt';\n\t}\n\treturn ES5Type(x);\n};\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import_objectInspect from \"object-inspect\";import __import___IsPropertyKey from \"./IsPropertyKey\";import __import___Type from \"./Type\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar inspect = __import_objectInspect;\n\nvar IsPropertyKey = __import___IsPropertyKey;\nvar Type = __import___Type;\n\n// https://262.ecma-international.org/6.0/#sec-get-o-p\n\nmodule.exports = function Get(O, P) {\n\t// 7.3.1.1\n\tif (Type(O) !== 'Object') {\n\t\tthrow new $TypeError('Assertion failed: Type(O) is not Object');\n\t}\n\t// 7.3.1.2\n\tif (!IsPropertyKey(P)) {\n\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true, got ' + inspect(P));\n\t}\n\t// 7.3.1.3\n\treturn O[P];\n};\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import_objectInspect from \"object-inspect\";import __import___IsPropertyKey from \"./IsPropertyKey\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar inspect = __import_objectInspect;\n\nvar IsPropertyKey = __import___IsPropertyKey;\n// var ToObject = require('./ToObject');\n\n// https://262.ecma-international.org/6.0/#sec-getv\n\nmodule.exports = function GetV(V, P) {\n\t// 7.3.2.1\n\tif (!IsPropertyKey(P)) {\n\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true, got ' + inspect(P));\n\t}\n\n\t// 7.3.2.2-3\n\t// var O = ToObject(V);\n\n\t// 7.3.2.4\n\treturn V[P];\n};\n", "'use strict';\n\nvar fnToStr = Function.prototype.toString;\nvar reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;\nvar badArrayLike;\nvar isCallableMarker;\nif (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {\n\ttry {\n\t\tbadArrayLike = Object.defineProperty({}, 'length', {\n\t\t\tget: function () {\n\t\t\t\tthrow isCallableMarker;\n\t\t\t}\n\t\t});\n\t\tisCallableMarker = {};\n\t\t// eslint-disable-next-line no-throw-literal\n\t\treflectApply(function () { throw 42; }, null, badArrayLike);\n\t} catch (_) {\n\t\tif (_ !== isCallableMarker) {\n\t\t\treflectApply = null;\n\t\t}\n\t}\n} else {\n\treflectApply = null;\n}\n\nvar constructorRegex = /^\\s*class\\b/;\nvar isES6ClassFn = function isES6ClassFunction(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\treturn constructorRegex.test(fnStr);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar objectClass = '[object Object]';\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar ddaClass = '[object HTMLAllCollection]'; // IE 11\nvar ddaClass2 = '[object HTML document.all class]';\nvar ddaClass3 = '[object HTMLCollection]'; // IE 9-10\nvar hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag`\n\nvar isIE68 = !(0 in [,]); // eslint-disable-line no-sparse-arrays, comma-spacing\n\nvar isDDA = function isDocumentDotAll() { return false; };\nif (typeof document === 'object') {\n\t// Firefox 3 canonicalizes DDA to undefined when it's not accessed directly\n\tvar all = document.all;\n\tif (toStr.call(all) === toStr.call(document.all)) {\n\t\tisDDA = function isDocumentDotAll(value) {\n\t\t\t/* globals document: false */\n\t\t\t// in IE 6-8, typeof document.all is \"object\" and it's truthy\n\t\t\tif ((isIE68 || !value) && (typeof value === 'undefined' || typeof value === 'object')) {\n\t\t\t\ttry {\n\t\t\t\t\tvar str = toStr.call(value);\n\t\t\t\t\treturn (\n\t\t\t\t\t\tstr === ddaClass\n\t\t\t\t\t\t|| str === ddaClass2\n\t\t\t\t\t\t|| str === ddaClass3 // opera 12.16\n\t\t\t\t\t\t|| str === objectClass // IE 6-8\n\t\t\t\t\t) && value('') == null; // eslint-disable-line eqeqeq\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\t}\n}\n\nmodule.exports = reflectApply\n\t? function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\ttry {\n\t\t\treflectApply(value, null, badArrayLike);\n\t\t} catch (e) {\n\t\t\tif (e !== isCallableMarker) { return false; }\n\t\t}\n\t\treturn !isES6ClassFn(value) && tryFunctionObject(value);\n\t}\n\t: function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\tif (hasToStringTag) { return tryFunctionObject(value); }\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tvar strClass = toStr.call(value);\n\t\tif (strClass !== fnClass && strClass !== genClass && !(/^\\[object HTML/).test(strClass)) { return false; }\n\t\treturn tryFunctionObject(value);\n\t};\n", "import __import_isCallable from \"is-callable\";'use strict';\n\n// http://262.ecma-international.org/5.1/#sec-9.11\n\nmodule.exports = __import_isCallable;\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import___GetV from \"./GetV\";import __import___IsCallable from \"./IsCallable\";import __import___IsPropertyKey from \"./IsPropertyKey\";import __import_objectInspect from \"object-inspect\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar GetV = __import___GetV;\nvar IsCallable = __import___IsCallable;\nvar IsPropertyKey = __import___IsPropertyKey;\n\nvar inspect = __import_objectInspect;\n\n// https://262.ecma-international.org/6.0/#sec-getmethod\n\nmodule.exports = function GetMethod(O, P) {\n\t// 7.3.9.1\n\tif (!IsPropertyKey(P)) {\n\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t}\n\n\t// 7.3.9.2\n\tvar func = GetV(O, P);\n\n\t// 7.3.9.4\n\tif (func == null) {\n\t\treturn void 0;\n\t}\n\n\t// 7.3.9.5\n\tif (!IsCallable(func)) {\n\t\tthrow new $TypeError(inspect(P) + ' is not a function: ' + inspect(func));\n\t}\n\n\t// 7.3.9.6\n\treturn func;\n};\n", "import __import_hasSymbols_shams from \"has-symbols/shams\";'use strict';\n\nvar hasSymbols = __import_hasSymbols_shams;\n\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n", "import __import_callBind_callBound from \"call-bind/callBound\";import __import_hasTostringtag_shams from \"has-tostringtag/shams\";'use strict';\n\nvar callBound = __import_callBind_callBound;\nvar hasToStringTag = __import_hasTostringtag_shams();\nvar has;\nvar $exec;\nvar isRegexMarker;\nvar badStringifier;\n\nif (hasToStringTag) {\n\thas = callBound('Object.prototype.hasOwnProperty');\n\t$exec = callBound('RegExp.prototype.exec');\n\tisRegexMarker = {};\n\n\tvar throwRegexMarker = function () {\n\t\tthrow isRegexMarker;\n\t};\n\tbadStringifier = {\n\t\ttoString: throwRegexMarker,\n\t\tvalueOf: throwRegexMarker\n\t};\n\n\tif (typeof Symbol.toPrimitive === 'symbol') {\n\t\tbadStringifier[Symbol.toPrimitive] = throwRegexMarker;\n\t}\n}\n\nvar $toString = callBound('Object.prototype.toString');\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar regexClass = '[object RegExp]';\n\nmodule.exports = hasToStringTag\n\t// eslint-disable-next-line consistent-return\n\t? function isRegex(value) {\n\t\tif (!value || typeof value !== 'object') {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar descriptor = gOPD(value, 'lastIndex');\n\t\tvar hasLastIndexDataProperty = descriptor && has(descriptor, 'value');\n\t\tif (!hasLastIndexDataProperty) {\n\t\t\treturn false;\n\t\t}\n\n\t\ttry {\n\t\t\t$exec(value, badStringifier);\n\t\t} catch (e) {\n\t\t\treturn e === isRegexMarker;\n\t\t}\n\t}\n\t: function isRegex(value) {\n\t\t// In older browsers, typeof regex incorrectly returns 'function'\n\t\tif (!value || (typeof value !== 'object' && typeof value !== 'function')) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn $toString(value) === regexClass;\n\t};\n", "'use strict';\n\n// http://262.ecma-international.org/5.1/#sec-9.2\n\nmodule.exports = function ToBoolean(value) { return !!value; };\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import_isRegex from \"is-regex\";import __import___ToBoolean from \"./ToBoolean\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $match = GetIntrinsic('%Symbol.match%', true);\n\nvar hasRegExpMatcher = __import_isRegex;\n\nvar ToBoolean = __import___ToBoolean;\n\n// https://262.ecma-international.org/6.0/#sec-isregexp\n\nmodule.exports = function IsRegExp(argument) {\n\tif (!argument || typeof argument !== 'object') {\n\t\treturn false;\n\t}\n\tif ($match) {\n\t\tvar isRegExp = argument[$match];\n\t\tif (typeof isRegExp !== 'undefined') {\n\t\t\treturn ToBoolean(isRegExp);\n\t\t}\n\t}\n\treturn hasRegExpMatcher(argument);\n};\n", "import __import_getIntrinsic from \"get-intrinsic\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $String = GetIntrinsic('%String%');\nvar $TypeError = GetIntrinsic('%TypeError%');\n\n// https://262.ecma-international.org/6.0/#sec-tostring\n\nmodule.exports = function ToString(argument) {\n\tif (typeof argument === 'symbol') {\n\t\tthrow new $TypeError('Cannot convert a Symbol value to a string');\n\t}\n\treturn $String(argument);\n};\n", "import __import_getIntrinsic from \"get-intrinsic\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\n// http://262.ecma-international.org/5.1/#sec-9.10\n\nmodule.exports = function CheckObjectCoercible(value, optMessage) {\n\tif (value == null) {\n\t\tthrow new $TypeError(optMessage || ('Cannot call method on ' + value));\n\t}\n\treturn value;\n};\n", "import __import____5_CheckObjectCoercible from \"../5/CheckObjectCoercible\";'use strict';\n\nmodule.exports = __import____5_CheckObjectCoercible;\n", "'use strict';\n\nvar functionsHaveNames = function functionsHaveNames() {\n\treturn typeof function f() {}.name === 'string';\n};\n\nvar gOPD = Object.getOwnPropertyDescriptor;\nif (gOPD) {\n\ttry {\n\t\tgOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\tgOPD = null;\n\t}\n}\n\nfunctionsHaveNames.functionsHaveConfigurableNames = function functionsHaveConfigurableNames() {\n\tif (!functionsHaveNames() || !gOPD) {\n\t\treturn false;\n\t}\n\tvar desc = gOPD(function () {}, 'name');\n\treturn !!desc && !!desc.configurable;\n};\n\nvar $bind = Function.prototype.bind;\n\nfunctionsHaveNames.boundFunctionsHaveNames = function boundFunctionsHaveNames() {\n\treturn functionsHaveNames() && typeof $bind === 'function' && function f() {}.bind().name !== '';\n};\n\nmodule.exports = functionsHaveNames;\n", "import __import_functionsHaveNames from \"functions-have-names\";'use strict';\n\nvar functionsHaveConfigurableNames = __import_functionsHaveNames.functionsHaveConfigurableNames();\n\nvar $Object = Object;\nvar $TypeError = TypeError;\n\nmodule.exports = function flags() {\n\tif (this != null && this !== $Object(this)) {\n\t\tthrow new $TypeError('RegExp.prototype.flags getter called on non-object');\n\t}\n\tvar result = '';\n\tif (this.hasIndices) {\n\t\tresult += 'd';\n\t}\n\tif (this.global) {\n\t\tresult += 'g';\n\t}\n\tif (this.ignoreCase) {\n\t\tresult += 'i';\n\t}\n\tif (this.multiline) {\n\t\tresult += 'm';\n\t}\n\tif (this.dotAll) {\n\t\tresult += 's';\n\t}\n\tif (this.unicode) {\n\t\tresult += 'u';\n\t}\n\tif (this.unicodeSets) {\n\t\tresult += 'v';\n\t}\n\tif (this.sticky) {\n\t\tresult += 'y';\n\t}\n\treturn result;\n};\n\nif (functionsHaveConfigurableNames && Object.defineProperty) {\n\tObject.defineProperty(module.exports, 'name', { value: 'get flags' });\n}\n", "import __import___implementation from \"./implementation\";import __import_defineProperties from \"define-properties\";'use strict';\n\nvar implementation = __import___implementation;\n\nvar supportsDescriptors = __import_defineProperties.supportsDescriptors;\nvar $gOPD = Object.getOwnPropertyDescriptor;\n\nmodule.exports = function getPolyfill() {\n\tif (supportsDescriptors && (/a/mig).flags === 'gim') {\n\t\tvar descriptor = $gOPD(RegExp.prototype, 'flags');\n\t\tif (\n\t\t\tdescriptor\n\t\t\t&& typeof descriptor.get === 'function'\n\t\t\t&& typeof RegExp.prototype.dotAll === 'boolean'\n\t\t\t&& typeof RegExp.prototype.hasIndices === 'boolean'\n\t\t) {\n\t\t\t/* eslint getter-return: 0 */\n\t\t\tvar calls = '';\n\t\t\tvar o = {};\n\t\t\tObject.defineProperty(o, 'hasIndices', {\n\t\t\t\tget: function () {\n\t\t\t\t\tcalls += 'd';\n\t\t\t\t}\n\t\t\t});\n\t\t\tObject.defineProperty(o, 'sticky', {\n\t\t\t\tget: function () {\n\t\t\t\t\tcalls += 'y';\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (calls === 'dy') {\n\t\t\t\treturn descriptor.get;\n\t\t\t}\n\t\t}\n\t}\n\treturn implementation;\n};\n", "import __import_defineProperties from \"define-properties\";import __import___polyfill from \"./polyfill\";'use strict';\n\nvar supportsDescriptors = __import_defineProperties.supportsDescriptors;\nvar getPolyfill = __import___polyfill;\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar TypeErr = TypeError;\nvar getProto = Object.getPrototypeOf;\nvar regex = /a/;\n\nmodule.exports = function shimFlags() {\n\tif (!supportsDescriptors || !getProto) {\n\t\tthrow new TypeErr('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors');\n\t}\n\tvar polyfill = getPolyfill();\n\tvar proto = getProto(regex);\n\tvar descriptor = gOPD(proto, 'flags');\n\tif (!descriptor || descriptor.get !== polyfill) {\n\t\tdefineProperty(proto, 'flags', {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tget: polyfill\n\t\t});\n\t}\n\treturn polyfill;\n};\n", "import __import_defineProperties from \"define-properties\";import __import_callBind from \"call-bind\";import __import___implementation from \"./implementation\";import __import___polyfill from \"./polyfill\";import __import___shim from \"./shim\";'use strict';\n\nvar define = __import_defineProperties;\nvar callBind = __import_callBind;\n\nvar implementation = __import___implementation;\nvar getPolyfill = __import___polyfill;\nvar shim = __import___shim;\n\nvar flagsBound = callBind(getPolyfill());\n\ndefine(flagsBound, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = flagsBound;\n", "'use strict';\n\nmodule.exports = function isLeadingSurrogate(charCode) {\n\treturn typeof charCode === 'number' && charCode >= 0xD800 && charCode <= 0xDBFF;\n};\n", "'use strict';\n\nmodule.exports = function isTrailingSurrogate(charCode) {\n\treturn typeof charCode === 'number' && charCode >= 0xDC00 && charCode <= 0xDFFF;\n};\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import____helpers_isLeadingSurrogate from \"../helpers/isLeadingSurrogate\";import __import____helpers_isTrailingSurrogate from \"../helpers/isTrailingSurrogate\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $fromCharCode = GetIntrinsic('%String.fromCharCode%');\n\nvar isLeadingSurrogate = __import____helpers_isLeadingSurrogate;\nvar isTrailingSurrogate = __import____helpers_isTrailingSurrogate;\n\n// https://tc39.es/ecma262/2020/#sec-utf16decodesurrogatepair\n\nmodule.exports = function UTF16SurrogatePairToCodePoint(lead, trail) {\n\tif (!isLeadingSurrogate(lead) || !isTrailingSurrogate(trail)) {\n\t\tthrow new $TypeError('Assertion failed: `lead` must be a leading surrogate char code, and `trail` must be a trailing surrogate char code');\n\t}\n\t// var cp = (lead - 0xD800) * 0x400 + (trail - 0xDC00) + 0x10000;\n\treturn $fromCharCode(lead) + $fromCharCode(trail);\n};\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import_callBind_callBound from \"call-bind/callBound\";import __import____helpers_isLeadingSurrogate from \"../helpers/isLeadingSurrogate\";import __import____helpers_isTrailingSurrogate from \"../helpers/isTrailingSurrogate\";import __import___Type from \"./Type\";import __import___UTF16SurrogatePairToCodePoint from \"./UTF16SurrogatePairToCodePoint\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar callBound = __import_callBind_callBound;\nvar isLeadingSurrogate = __import____helpers_isLeadingSurrogate;\nvar isTrailingSurrogate = __import____helpers_isTrailingSurrogate;\n\nvar Type = __import___Type;\nvar UTF16SurrogatePairToCodePoint = __import___UTF16SurrogatePairToCodePoint;\n\nvar $charAt = callBound('String.prototype.charAt');\nvar $charCodeAt = callBound('String.prototype.charCodeAt');\n\n// https://262.ecma-international.org/12.0/#sec-codepointat\n\nmodule.exports = function CodePointAt(string, position) {\n\tif (Type(string) !== 'String') {\n\t\tthrow new $TypeError('Assertion failed: `string` must be a String');\n\t}\n\tvar size = string.length;\n\tif (position < 0 || position >= size) {\n\t\tthrow new $TypeError('Assertion failed: `position` must be >= 0, and < the length of `string`');\n\t}\n\tvar first = $charCodeAt(string, position);\n\tvar cp = $charAt(string, position);\n\tvar firstIsLeading = isLeadingSurrogate(first);\n\tvar firstIsTrailing = isTrailingSurrogate(first);\n\tif (!firstIsLeading && !firstIsTrailing) {\n\t\treturn {\n\t\t\t'[[CodePoint]]': cp,\n\t\t\t'[[CodeUnitCount]]': 1,\n\t\t\t'[[IsUnpairedSurrogate]]': false\n\t\t};\n\t}\n\tif (firstIsTrailing || (position + 1 === size)) {\n\t\treturn {\n\t\t\t'[[CodePoint]]': cp,\n\t\t\t'[[CodeUnitCount]]': 1,\n\t\t\t'[[IsUnpairedSurrogate]]': true\n\t\t};\n\t}\n\tvar second = $charCodeAt(string, position + 1);\n\tif (!isTrailingSurrogate(second)) {\n\t\treturn {\n\t\t\t'[[CodePoint]]': cp,\n\t\t\t'[[CodeUnitCount]]': 1,\n\t\t\t'[[IsUnpairedSurrogate]]': true\n\t\t};\n\t}\n\n\treturn {\n\t\t'[[CodePoint]]': UTF16SurrogatePairToCodePoint(first, second),\n\t\t'[[CodeUnitCount]]': 2,\n\t\t'[[IsUnpairedSurrogate]]': false\n\t};\n};\n", "'use strict';\n\nmodule.exports = Number.isNaN || function isNaN(a) {\n\treturn a !== a;\n};\n", "import __import___isNaN from \"./isNaN\";'use strict';\n\nvar $isNaN = __import___isNaN;\n\nmodule.exports = function (x) { return (typeof x === 'number' || typeof x === 'bigint') && !$isNaN(x) && x !== Infinity && x !== -Infinity; };\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import___isNaN from \"./isNaN\";import __import___isFinite from \"./isFinite\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $abs = GetIntrinsic('%Math.abs%');\nvar $floor = GetIntrinsic('%Math.floor%');\n\nvar $isNaN = __import___isNaN;\nvar $isFinite = __import___isFinite;\n\nmodule.exports = function isInteger(argument) {\n\tif (typeof argument !== 'number' || $isNaN(argument) || !$isFinite(argument)) {\n\t\treturn false;\n\t}\n\tvar absValue = $abs(argument);\n\treturn $floor(absValue) === absValue;\n};\n\n", "import __import_getIntrinsic from \"get-intrinsic\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $Math = GetIntrinsic('%Math%');\nvar $Number = GetIntrinsic('%Number%');\n\nmodule.exports = $Number.MAX_SAFE_INTEGER || $Math.pow(2, 53) - 1;\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import___CodePointAt from \"./CodePointAt\";import __import___Type from \"./Type\";import __import____helpers_isInteger from \"../helpers/isInteger\";import __import____helpers_maxSafeInteger from \"../helpers/maxSafeInteger\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar CodePointAt = __import___CodePointAt;\nvar Type = __import___Type;\n\nvar isInteger = __import____helpers_isInteger;\nvar MAX_SAFE_INTEGER = __import____helpers_maxSafeInteger;\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\n// https://262.ecma-international.org/12.0/#sec-advancestringindex\n\nmodule.exports = function AdvanceStringIndex(S, index, unicode) {\n\tif (Type(S) !== 'String') {\n\t\tthrow new $TypeError('Assertion failed: `S` must be a String');\n\t}\n\tif (!isInteger(index) || index < 0 || index > MAX_SAFE_INTEGER) {\n\t\tthrow new $TypeError('Assertion failed: `length` must be an integer >= 0 and <= 2**53');\n\t}\n\tif (Type(unicode) !== 'Boolean') {\n\t\tthrow new $TypeError('Assertion failed: `unicode` must be a Boolean');\n\t}\n\tif (!unicode) {\n\t\treturn index + 1;\n\t}\n\tvar length = S.length;\n\tif ((index + 1) >= length) {\n\t\treturn index + 1;\n\t}\n\tvar cp = CodePointAt(S, index);\n\treturn index + cp['[[CodeUnitCount]]'];\n};\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import___Type from \"./Type\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar Type = __import___Type;\n\n// https://262.ecma-international.org/6.0/#sec-createiterresultobject\n\nmodule.exports = function CreateIterResultObject(value, done) {\n\tif (Type(done) !== 'Boolean') {\n\t\tthrow new $TypeError('Assertion failed: Type(done) is not Boolean');\n\t}\n\treturn {\n\t\tvalue: value,\n\t\tdone: done\n\t};\n};\n", "import __import_hasPropertyDescriptors from \"has-property-descriptors\";import __import_getIntrinsic from \"get-intrinsic\";import __import____helpers_IsArray from \"../helpers/IsArray\";import __import_callBind_callBound from \"call-bind/callBound\";'use strict';\n\nvar hasPropertyDescriptors = __import_hasPropertyDescriptors;\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $defineProperty = hasPropertyDescriptors() && GetIntrinsic('%Object.defineProperty%', true);\n\nvar hasArrayLengthDefineBug = hasPropertyDescriptors.hasArrayLengthDefineBug();\n\n// eslint-disable-next-line global-require\nvar isArray = hasArrayLengthDefineBug && __import____helpers_IsArray;\n\nvar callBound = __import_callBind_callBound;\n\nvar $isEnumerable = callBound('Object.prototype.propertyIsEnumerable');\n\n// eslint-disable-next-line max-params\nmodule.exports = function DefineOwnProperty(IsDataDescriptor, SameValue, FromPropertyDescriptor, O, P, desc) {\n\tif (!$defineProperty) {\n\t\tif (!IsDataDescriptor(desc)) {\n\t\t\t// ES3 does not support getters/setters\n\t\t\treturn false;\n\t\t}\n\t\tif (!desc['[[Configurable]]'] || !desc['[[Writable]]']) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// fallback for ES3\n\t\tif (P in O && $isEnumerable(O, P) !== !!desc['[[Enumerable]]']) {\n\t\t\t// a non-enumerable existing property\n\t\t\treturn false;\n\t\t}\n\n\t\t// property does not exist at all, or exists but is enumerable\n\t\tvar V = desc['[[Value]]'];\n\t\t// eslint-disable-next-line no-param-reassign\n\t\tO[P] = V; // will use [[Define]]\n\t\treturn SameValue(O[P], V);\n\t}\n\tif (\n\t\thasArrayLengthDefineBug\n\t\t&& P === 'length'\n\t\t&& '[[Value]]' in desc\n\t\t&& isArray(O)\n\t\t&& O.length !== desc['[[Value]]']\n\t) {\n\t\t// eslint-disable-next-line no-param-reassign\n\t\tO.length = desc['[[Value]]'];\n\t\treturn O.length === desc['[[Value]]'];\n\t}\n\n\t$defineProperty(O, P, FromPropertyDescriptor(desc));\n\treturn true;\n};\n", "import __import_has from \"has\";'use strict';\n\nvar has = __import_has;\n\n// https://262.ecma-international.org/13.0/#sec-match-records\n\nmodule.exports = function isMatchRecord(record) {\n\treturn (\n\t\thas(record, '[[StartIndex]]')\n && has(record, '[[EndIndex]]')\n && record['[[StartIndex]]'] >= 0\n && record['[[EndIndex]]'] >= record['[[StartIndex]]']\n && String(parseInt(record['[[StartIndex]]'], 10)) === String(record['[[StartIndex]]'])\n && String(parseInt(record['[[EndIndex]]'], 10)) === String(record['[[EndIndex]]'])\n\t);\n};\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import_has from \"has\";import __import___isInteger from \"./isInteger\";import __import___isMatchRecord from \"./isMatchRecord\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $SyntaxError = GetIntrinsic('%SyntaxError%');\n\nvar has = __import_has;\nvar isInteger = __import___isInteger;\n\nvar isMatchRecord = __import___isMatchRecord;\n\nvar predicates = {\n\t// https://262.ecma-international.org/6.0/#sec-property-descriptor-specification-type\n\t'Property Descriptor': function isPropertyDescriptor(Desc) {\n\t\tvar allowed = {\n\t\t\t'[[Configurable]]': true,\n\t\t\t'[[Enumerable]]': true,\n\t\t\t'[[Get]]': true,\n\t\t\t'[[Set]]': true,\n\t\t\t'[[Value]]': true,\n\t\t\t'[[Writable]]': true\n\t\t};\n\n\t\tif (!Desc) {\n\t\t\treturn false;\n\t\t}\n\t\tfor (var key in Desc) { // eslint-disable-line\n\t\t\tif (has(Desc, key) && !allowed[key]) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tvar isData = has(Desc, '[[Value]]');\n\t\tvar IsAccessor = has(Desc, '[[Get]]') || has(Desc, '[[Set]]');\n\t\tif (isData && IsAccessor) {\n\t\t\tthrow new $TypeError('Property Descriptors may not be both accessor and data descriptors');\n\t\t}\n\t\treturn true;\n\t},\n\t// https://262.ecma-international.org/13.0/#sec-match-records\n\t'Match Record': isMatchRecord,\n\t'Iterator Record': function isIteratorRecord(value) {\n\t\treturn has(value, '[[Iterator]]') && has(value, '[[NextMethod]]') && has(value, '[[Done]]');\n\t},\n\t'PromiseCapability Record': function isPromiseCapabilityRecord(value) {\n\t\treturn !!value\n\t\t\t&& has(value, '[[Resolve]]')\n\t\t\t&& typeof value['[[Resolve]]'] === 'function'\n\t\t\t&& has(value, '[[Reject]]')\n\t\t\t&& typeof value['[[Reject]]'] === 'function'\n\t\t\t&& has(value, '[[Promise]]')\n\t\t\t&& value['[[Promise]]']\n\t\t\t&& typeof value['[[Promise]]'].then === 'function';\n\t},\n\t'AsyncGeneratorRequest Record': function isAsyncGeneratorRequestRecord(value) {\n\t\treturn !!value\n\t\t\t&& has(value, '[[Completion]]') // TODO: confirm is a completion record\n\t\t\t&& has(value, '[[Capability]]')\n\t\t\t&& predicates['PromiseCapability Record'](value['[[Capability]]']);\n\t},\n\t'RegExp Record': function isRegExpRecord(value) {\n\t\treturn value\n\t\t\t&& has(value, '[[IgnoreCase]]')\n\t\t\t&& typeof value['[[IgnoreCase]]'] === 'boolean'\n\t\t\t&& has(value, '[[Multiline]]')\n\t\t\t&& typeof value['[[Multiline]]'] === 'boolean'\n\t\t\t&& has(value, '[[DotAll]]')\n\t\t\t&& typeof value['[[DotAll]]'] === 'boolean'\n\t\t\t&& has(value, '[[Unicode]]')\n\t\t\t&& typeof value['[[Unicode]]'] === 'boolean'\n\t\t\t&& has(value, '[[CapturingGroupsCount]]')\n\t\t\t&& typeof value['[[CapturingGroupsCount]]'] === 'number'\n\t\t\t&& isInteger(value['[[CapturingGroupsCount]]'])\n\t\t\t&& value['[[CapturingGroupsCount]]'] >= 0;\n\t}\n};\n\nmodule.exports = function assertRecord(Type, recordType, argumentName, value) {\n\tvar predicate = predicates[recordType];\n\tif (typeof predicate !== 'function') {\n\t\tthrow new $SyntaxError('unknown record type: ' + recordType);\n\t}\n\tif (Type(value) !== 'Object' || !predicate(value)) {\n\t\tthrow new $TypeError(argumentName + ' must be a ' + recordType);\n\t}\n};\n", "'use strict';\n\nmodule.exports = function fromPropertyDescriptor(Desc) {\n\tif (typeof Desc === 'undefined') {\n\t\treturn Desc;\n\t}\n\tvar obj = {};\n\tif ('[[Value]]' in Desc) {\n\t\tobj.value = Desc['[[Value]]'];\n\t}\n\tif ('[[Writable]]' in Desc) {\n\t\tobj.writable = !!Desc['[[Writable]]'];\n\t}\n\tif ('[[Get]]' in Desc) {\n\t\tobj.get = Desc['[[Get]]'];\n\t}\n\tif ('[[Set]]' in Desc) {\n\t\tobj.set = Desc['[[Set]]'];\n\t}\n\tif ('[[Enumerable]]' in Desc) {\n\t\tobj.enumerable = !!Desc['[[Enumerable]]'];\n\t}\n\tif ('[[Configurable]]' in Desc) {\n\t\tobj.configurable = !!Desc['[[Configurable]]'];\n\t}\n\treturn obj;\n};\n", "import __import____helpers_assertRecord from \"../helpers/assertRecord\";import __import____helpers_fromPropertyDescriptor from \"../helpers/fromPropertyDescriptor\";import __import___Type from \"./Type\";'use strict';\n\nvar assertRecord = __import____helpers_assertRecord;\nvar fromPropertyDescriptor = __import____helpers_fromPropertyDescriptor;\n\nvar Type = __import___Type;\n\n// https://262.ecma-international.org/6.0/#sec-frompropertydescriptor\n\nmodule.exports = function FromPropertyDescriptor(Desc) {\n\tif (typeof Desc !== 'undefined') {\n\t\tassertRecord(Type, 'Property Descriptor', 'Desc', Desc);\n\t}\n\n\treturn fromPropertyDescriptor(Desc);\n};\n", "import __import_has from \"has\";import __import___Type from \"./Type\";import __import____helpers_assertRecord from \"../helpers/assertRecord\";'use strict';\n\nvar has = __import_has;\n\nvar Type = __import___Type;\n\nvar assertRecord = __import____helpers_assertRecord;\n\n// https://262.ecma-international.org/5.1/#sec-8.10.2\n\nmodule.exports = function IsDataDescriptor(Desc) {\n\tif (typeof Desc === 'undefined') {\n\t\treturn false;\n\t}\n\n\tassertRecord(Type, 'Property Descriptor', 'Desc', Desc);\n\n\tif (!has(Desc, '[[Value]]') && !has(Desc, '[[Writable]]')) {\n\t\treturn false;\n\t}\n\n\treturn true;\n};\n", "import __import____helpers_isNaN from \"../helpers/isNaN\";'use strict';\n\nvar $isNaN = __import____helpers_isNaN;\n\n// http://262.ecma-international.org/5.1/#sec-9.12\n\nmodule.exports = function SameValue(x, y) {\n\tif (x === y) { // 0 === -0, but they are not identical.\n\t\tif (x === 0) { return 1 / x === 1 / y; }\n\t\treturn true;\n\t}\n\treturn $isNaN(x) && $isNaN(y);\n};\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import____helpers_DefineOwnProperty from \"../helpers/DefineOwnProperty\";import __import___FromPropertyDescriptor from \"./FromPropertyDescriptor\";import __import___IsDataDescriptor from \"./IsDataDescriptor\";import __import___IsPropertyKey from \"./IsPropertyKey\";import __import___SameValue from \"./SameValue\";import __import___Type from \"./Type\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar DefineOwnProperty = __import____helpers_DefineOwnProperty;\n\nvar FromPropertyDescriptor = __import___FromPropertyDescriptor;\nvar IsDataDescriptor = __import___IsDataDescriptor;\nvar IsPropertyKey = __import___IsPropertyKey;\nvar SameValue = __import___SameValue;\nvar Type = __import___Type;\n\n// https://262.ecma-international.org/6.0/#sec-createmethodproperty\n\nmodule.exports = function CreateMethodProperty(O, P, V) {\n\tif (Type(O) !== 'Object') {\n\t\tthrow new $TypeError('Assertion failed: Type(O) is not Object');\n\t}\n\n\tif (!IsPropertyKey(P)) {\n\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t}\n\n\tvar newDesc = {\n\t\t'[[Configurable]]': true,\n\t\t'[[Enumerable]]': false,\n\t\t'[[Value]]': V,\n\t\t'[[Writable]]': true\n\t};\n\treturn DefineOwnProperty(\n\t\tIsDataDescriptor,\n\t\tSameValue,\n\t\tFromPropertyDescriptor,\n\t\tO,\n\t\tP,\n\t\tnewDesc\n\t);\n};\n", "'use strict';\n\nmodule.exports = function forEach(array, callback) {\n\tfor (var i = 0; i < array.length; i += 1) {\n\t\tcallback(array[i], i, array); // eslint-disable-line callback-return\n\t}\n};\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import_callBind_callBound from \"call-bind/callBound\";import __import_objectInspect from \"object-inspect\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\nvar callBound = __import_callBind_callBound;\nvar inspect = __import_objectInspect;\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\nvar $Map = GetIntrinsic('%Map%', true);\n\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\nvar $mapGet = callBound('Map.prototype.get', true);\nvar $mapSet = callBound('Map.prototype.set', true);\nvar $mapHas = callBound('Map.prototype.has', true);\n\n/*\n * This function traverses the list returning the node corresponding to the\n * given key.\n *\n * That node is also moved to the head of the list, so that if it's accessed\n * again we don't need to traverse the whole list. By doing so, all the recently\n * used nodes can be accessed relatively quickly.\n */\nvar listGetNode = function (list, key) { // eslint-disable-line consistent-return\n\tfor (var prev = list, curr; (curr = prev.next) !== null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\tcurr.next = list.next;\n\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\nvar listGet = function (objects, key) {\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\nvar listSet = function (objects, key, value) {\n\tvar node = listGetNode(objects, key);\n\tif (node) {\n\t\tnode.value = value;\n\t} else {\n\t\t// Prepend the new node to the beginning of the list\n\t\tobjects.next = { // eslint-disable-line no-param-reassign\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t};\n\t}\n};\nvar listHas = function (objects, key) {\n\treturn !!listGetNode(objects, key);\n};\n\nmodule.exports = function getSideChannel() {\n\tvar $wm;\n\tvar $m;\n\tvar $o;\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\tget: function (key) { // eslint-disable-line consistent-return\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapGet($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapGet($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listGet($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\thas: function (key) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapHas($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapHas($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listHas($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif (!$wm) {\n\t\t\t\t\t$wm = new $WeakMap();\n\t\t\t\t}\n\t\t\t\t$weakMapSet($wm, key, value);\n\t\t\t} else if ($Map) {\n\t\t\t\tif (!$m) {\n\t\t\t\t\t$m = new $Map();\n\t\t\t\t}\n\t\t\t\t$mapSet($m, key, value);\n\t\t\t} else {\n\t\t\t\tif (!$o) {\n\t\t\t\t\t/*\n\t\t\t\t\t * Initialize the linked list as an empty node, so that we don't have\n\t\t\t\t\t * to special-case handling of the first node: we can always refer to\n\t\t\t\t\t * it as (previous node).next, instead of something like (list).head\n\t\t\t\t\t */\n\t\t\t\t\t$o = { key: {}, next: null };\n\t\t\t\t}\n\t\t\t\tlistSet($o, key, value);\n\t\t\t}\n\t\t}\n\t};\n\treturn channel;\n};\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import_has from \"has\";import __import_sideChannel from \"side-channel\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\nvar has = __import_has;\nvar channel = __import_sideChannel();\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar SLOT = {\n\tassert: function (O, slot) {\n\t\tif (!O || (typeof O !== 'object' && typeof O !== 'function')) {\n\t\t\tthrow new $TypeError('`O` is not an object');\n\t\t}\n\t\tif (typeof slot !== 'string') {\n\t\t\tthrow new $TypeError('`slot` must be a string');\n\t\t}\n\t\tchannel.assert(O);\n\t\tif (!SLOT.has(O, slot)) {\n\t\t\tthrow new $TypeError('`' + slot + '` is not present on `O`');\n\t\t}\n\t},\n\tget: function (O, slot) {\n\t\tif (!O || (typeof O !== 'object' && typeof O !== 'function')) {\n\t\t\tthrow new $TypeError('`O` is not an object');\n\t\t}\n\t\tif (typeof slot !== 'string') {\n\t\t\tthrow new $TypeError('`slot` must be a string');\n\t\t}\n\t\tvar slots = channel.get(O);\n\t\treturn slots && slots['$' + slot];\n\t},\n\thas: function (O, slot) {\n\t\tif (!O || (typeof O !== 'object' && typeof O !== 'function')) {\n\t\t\tthrow new $TypeError('`O` is not an object');\n\t\t}\n\t\tif (typeof slot !== 'string') {\n\t\t\tthrow new $TypeError('`slot` must be a string');\n\t\t}\n\t\tvar slots = channel.get(O);\n\t\treturn !!slots && has(slots, '$' + slot);\n\t},\n\tset: function (O, slot, V) {\n\t\tif (!O || (typeof O !== 'object' && typeof O !== 'function')) {\n\t\t\tthrow new $TypeError('`O` is not an object');\n\t\t}\n\t\tif (typeof slot !== 'string') {\n\t\t\tthrow new $TypeError('`slot` must be a string');\n\t\t}\n\t\tvar slots = channel.get(O);\n\t\tif (!slots) {\n\t\t\tslots = {};\n\t\t\tchannel.set(O, slots);\n\t\t}\n\t\tslots['$' + slot] = V;\n\t}\n};\n\nif (Object.freeze) {\n\tObject.freeze(SLOT);\n}\n\nmodule.exports = SLOT;\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import___IsArray from \"./IsArray\";import __import___Type from \"./Type\";import __import____helpers_forEach from \"../helpers/forEach\";import __import_internalSlot from \"internal-slot\";import __import_hasProto from \"has-proto\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $ObjectCreate = GetIntrinsic('%Object.create%', true);\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $SyntaxError = GetIntrinsic('%SyntaxError%');\n\nvar IsArray = __import___IsArray;\nvar Type = __import___Type;\n\nvar forEach = __import____helpers_forEach;\n\nvar SLOT = __import_internalSlot;\n\nvar hasProto = __import_hasProto();\n\n// https://262.ecma-international.org/11.0/#sec-objectcreate\n\nmodule.exports = function OrdinaryObjectCreate(proto) {\n\tif (proto !== null && Type(proto) !== 'Object') {\n\t\tthrow new $TypeError('Assertion failed: `proto` must be null or an object');\n\t}\n\tvar additionalInternalSlotsList = arguments.length < 2 ? [] : arguments[1];\n\tif (!IsArray(additionalInternalSlotsList)) {\n\t\tthrow new $TypeError('Assertion failed: `additionalInternalSlotsList` must be an Array');\n\t}\n\n\t// var internalSlotsList = ['[[Prototype]]', '[[Extensible]]']; // step 1\n\t// internalSlotsList.push(...additionalInternalSlotsList); // step 2\n\t// var O = MakeBasicObject(internalSlotsList); // step 3\n\t// setProto(O, proto); // step 4\n\t// return O; // step 5\n\n\tvar O;\n\tif ($ObjectCreate) {\n\t\tO = $ObjectCreate(proto);\n\t} else if (hasProto) {\n\t\tO = { __proto__: proto };\n\t} else {\n\t\tif (proto === null) {\n\t\t\tthrow new $SyntaxError('native Object.create support is required to create null objects');\n\t\t}\n\t\tvar T = function T() {};\n\t\tT.prototype = proto;\n\t\tO = new T();\n\t}\n\n\tif (additionalInternalSlotsList.length > 0) {\n\t\tforEach(additionalInternalSlotsList, function (slot) {\n\t\t\tSLOT.set(O, slot, void undefined);\n\t\t});\n\t}\n\n\treturn O;\n};\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import_callBind_callBound from \"call-bind/callBound\";import __import___Call from \"./Call\";import __import___Get from \"./Get\";import __import___IsCallable from \"./IsCallable\";import __import___Type from \"./Type\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar regexExec = __import_callBind_callBound('RegExp.prototype.exec');\n\nvar Call = __import___Call;\nvar Get = __import___Get;\nvar IsCallable = __import___IsCallable;\nvar Type = __import___Type;\n\n// https://262.ecma-international.org/6.0/#sec-regexpexec\n\nmodule.exports = function RegExpExec(R, S) {\n\tif (Type(R) !== 'Object') {\n\t\tthrow new $TypeError('Assertion failed: `R` must be an Object');\n\t}\n\tif (Type(S) !== 'String') {\n\t\tthrow new $TypeError('Assertion failed: `S` must be a String');\n\t}\n\tvar exec = Get(R, 'exec');\n\tif (IsCallable(exec)) {\n\t\tvar result = Call(exec, R, [S]);\n\t\tif (result === null || Type(result) === 'Object') {\n\t\t\treturn result;\n\t\t}\n\t\tthrow new $TypeError('\"exec\" method must return `null` or an Object');\n\t}\n\treturn regexExec(R, S);\n};\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import___IsPropertyKey from \"./IsPropertyKey\";import __import___SameValue from \"./SameValue\";import __import___Type from \"./Type\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar IsPropertyKey = __import___IsPropertyKey;\nvar SameValue = __import___SameValue;\nvar Type = __import___Type;\n\n// IE 9 does not throw in strict mode when writability/configurability/extensibility is violated\nvar noThrowOnStrictViolation = (function () {\n\ttry {\n\t\tdelete [].length;\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n}());\n\n// https://262.ecma-international.org/6.0/#sec-set-o-p-v-throw\n\nmodule.exports = function Set(O, P, V, Throw) {\n\tif (Type(O) !== 'Object') {\n\t\tthrow new $TypeError('Assertion failed: `O` must be an Object');\n\t}\n\tif (!IsPropertyKey(P)) {\n\t\tthrow new $TypeError('Assertion failed: `P` must be a Property Key');\n\t}\n\tif (Type(Throw) !== 'Boolean') {\n\t\tthrow new $TypeError('Assertion failed: `Throw` must be a Boolean');\n\t}\n\tif (Throw) {\n\t\tO[P] = V; // eslint-disable-line no-param-reassign\n\t\tif (noThrowOnStrictViolation && !SameValue(O[P], V)) {\n\t\t\tthrow new $TypeError('Attempted to assign to readonly property.');\n\t\t}\n\t\treturn true;\n\t}\n\ttry {\n\t\tO[P] = V; // eslint-disable-line no-param-reassign\n\t\treturn noThrowOnStrictViolation ? SameValue(O[P], V) : true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n\n};\n", "import __import_getIntrinsic from \"get-intrinsic\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $abs = GetIntrinsic('%Math.abs%');\n\n// http://262.ecma-international.org/5.1/#sec-5.2\n\nmodule.exports = function abs(x) {\n\treturn $abs(x);\n};\n", "import __import___Type from \"./Type\";'use strict';\n\nvar Type = __import___Type;\n\n// var modulo = require('./modulo');\nvar $floor = Math.floor;\n\n// http://262.ecma-international.org/11.0/#eqn-floor\n\nmodule.exports = function floor(x) {\n\t// return x - modulo(x, 1);\n\tif (Type(x) === 'BigInt') {\n\t\treturn x;\n\t}\n\treturn $floor(x);\n};\n", "'use strict';\n\nmodule.exports = function isPrimitive(value) {\n\treturn value === null || (typeof value !== 'function' && typeof value !== 'object');\n};\n", "'use strict';\n\nmodule.exports = function isPrimitive(value) {\n\treturn value === null || (typeof value !== 'function' && typeof value !== 'object');\n};\n", "import __import_hasTostringtag_shams from \"has-tostringtag/shams\";'use strict';\n\nvar getDay = Date.prototype.getDay;\nvar tryDateObject = function tryDateGetDayCall(value) {\n\ttry {\n\t\tgetDay.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar toStr = Object.prototype.toString;\nvar dateClass = '[object Date]';\nvar hasToStringTag = __import_hasTostringtag_shams();\n\nmodule.exports = function isDateObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\treturn hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass;\n};\n", "import __import_hasSymbols from \"has-symbols\";'use strict';\n\nvar toStr = Object.prototype.toString;\nvar hasSymbols = __import_hasSymbols();\n\nif (hasSymbols) {\n\tvar symToStr = Symbol.prototype.toString;\n\tvar symStringRegex = /^Symbol\\(.*\\)$/;\n\tvar isSymbolObject = function isRealSymbolObject(value) {\n\t\tif (typeof value.valueOf() !== 'symbol') {\n\t\t\treturn false;\n\t\t}\n\t\treturn symStringRegex.test(symToStr.call(value));\n\t};\n\n\tmodule.exports = function isSymbol(value) {\n\t\tif (typeof value === 'symbol') {\n\t\t\treturn true;\n\t\t}\n\t\tif (toStr.call(value) !== '[object Symbol]') {\n\t\t\treturn false;\n\t\t}\n\t\ttry {\n\t\t\treturn isSymbolObject(value);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n} else {\n\n\tmodule.exports = function isSymbol(value) {\n\t\t// this environment does not support Symbols.\n\t\treturn false && value;\n\t};\n}\n", "import __import___helpers_isPrimitive from \"./helpers/isPrimitive\";import __import_isCallable from \"is-callable\";import __import_isDateObject from \"is-date-object\";import __import_isSymbol from \"is-symbol\";'use strict';\n\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol';\n\nvar isPrimitive = __import___helpers_isPrimitive;\nvar isCallable = __import_isCallable;\nvar isDate = __import_isDateObject;\nvar isSymbol = __import_isSymbol;\n\nvar ordinaryToPrimitive = function OrdinaryToPrimitive(O, hint) {\n\tif (typeof O === 'undefined' || O === null) {\n\t\tthrow new TypeError('Cannot call method on ' + O);\n\t}\n\tif (typeof hint !== 'string' || (hint !== 'number' && hint !== 'string')) {\n\t\tthrow new TypeError('hint must be \"string\" or \"number\"');\n\t}\n\tvar methodNames = hint === 'string' ? ['toString', 'valueOf'] : ['valueOf', 'toString'];\n\tvar method, result, i;\n\tfor (i = 0; i < methodNames.length; ++i) {\n\t\tmethod = O[methodNames[i]];\n\t\tif (isCallable(method)) {\n\t\t\tresult = method.call(O);\n\t\t\tif (isPrimitive(result)) {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t}\n\t}\n\tthrow new TypeError('No default value');\n};\n\nvar GetMethod = function GetMethod(O, P) {\n\tvar func = O[P];\n\tif (func !== null && typeof func !== 'undefined') {\n\t\tif (!isCallable(func)) {\n\t\t\tthrow new TypeError(func + ' returned for property ' + P + ' of object ' + O + ' is not a function');\n\t\t}\n\t\treturn func;\n\t}\n\treturn void 0;\n};\n\n// http://www.ecma-international.org/ecma-262/6.0/#sec-toprimitive\nmodule.exports = function ToPrimitive(input) {\n\tif (isPrimitive(input)) {\n\t\treturn input;\n\t}\n\tvar hint = 'default';\n\tif (arguments.length > 1) {\n\t\tif (arguments[1] === String) {\n\t\t\thint = 'string';\n\t\t} else if (arguments[1] === Number) {\n\t\t\thint = 'number';\n\t\t}\n\t}\n\n\tvar exoticToPrim;\n\tif (hasSymbols) {\n\t\tif (Symbol.toPrimitive) {\n\t\t\texoticToPrim = GetMethod(input, Symbol.toPrimitive);\n\t\t} else if (isSymbol(input)) {\n\t\t\texoticToPrim = Symbol.prototype.valueOf;\n\t\t}\n\t}\n\tif (typeof exoticToPrim !== 'undefined') {\n\t\tvar result = exoticToPrim.call(input, hint);\n\t\tif (isPrimitive(result)) {\n\t\t\treturn result;\n\t\t}\n\t\tthrow new TypeError('unable to convert exotic object to primitive');\n\t}\n\tif (hint === 'default' && (isDate(input) || isSymbol(input))) {\n\t\thint = 'string';\n\t}\n\treturn ordinaryToPrimitive(input, hint === 'default' ? 'number' : hint);\n};\n", "import __import_esToPrimitive_es2015 from \"es-to-primitive/es2015\";'use strict';\n\nvar toPrimitive = __import_esToPrimitive_es2015;\n\n// https://262.ecma-international.org/6.0/#sec-toprimitive\n\nmodule.exports = function ToPrimitive(input) {\n\tif (arguments.length > 1) {\n\t\treturn toPrimitive(input, arguments[1]);\n\t}\n\treturn toPrimitive(input);\n};\n", "import __import_callBind_callBound from \"call-bind/callBound\";import __import_getIntrinsic from \"get-intrinsic\";import __import_isRegex from \"is-regex\";'use strict';\n\nvar callBound = __import_callBind_callBound;\nvar GetIntrinsic = __import_getIntrinsic;\nvar isRegex = __import_isRegex;\n\nvar $exec = callBound('RegExp.prototype.exec');\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nmodule.exports = function regexTester(regex) {\n\tif (!isRegex(regex)) {\n\t\tthrow new $TypeError('`regex` must be a RegExp');\n\t}\n\treturn function test(s) {\n\t\treturn $exec(regex, s) !== null;\n\t};\n};\n", "import __import_esAbstract_2022_RequireObjectCoercible from \"es-abstract/2022/RequireObjectCoercible\";import __import_esAbstract_2022_ToString from \"es-abstract/2022/ToString\";import __import_callBind_callBound from \"call-bind/callBound\";'use strict';\n\nvar RequireObjectCoercible = __import_esAbstract_2022_RequireObjectCoercible;\nvar ToString = __import_esAbstract_2022_ToString;\nvar callBound = __import_callBind_callBound;\nvar $replace = callBound('String.prototype.replace');\n\nvar mvsIsWS = (/^\\s$/).test('\\u180E');\n/* eslint-disable no-control-regex */\nvar leftWhitespace = mvsIsWS\n\t? /^[\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF]+/\n\t: /^[\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF]+/;\nvar rightWhitespace = mvsIsWS\n\t? /[\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF]+$/\n\t: /[\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF]+$/;\n/* eslint-enable no-control-regex */\n\nmodule.exports = function trim() {\n\tvar S = ToString(RequireObjectCoercible(this));\n\treturn $replace($replace(S, leftWhitespace, ''), rightWhitespace, '');\n};\n", "import __import___implementation from \"./implementation\";'use strict';\n\nvar implementation = __import___implementation;\n\nvar zeroWidthSpace = '\\u200b';\nvar mongolianVowelSeparator = '\\u180E';\n\nmodule.exports = function getPolyfill() {\n\tif (\n\t\tString.prototype.trim\n\t\t&& zeroWidthSpace.trim() === zeroWidthSpace\n\t\t&& mongolianVowelSeparator.trim() === mongolianVowelSeparator\n\t\t&& ('_' + mongolianVowelSeparator).trim() === ('_' + mongolianVowelSeparator)\n\t\t&& (mongolianVowelSeparator + '_').trim() === (mongolianVowelSeparator + '_')\n\t) {\n\t\treturn String.prototype.trim;\n\t}\n\treturn implementation;\n};\n", "import __import_defineProperties from \"define-properties\";import __import___polyfill from \"./polyfill\";'use strict';\n\nvar define = __import_defineProperties;\nvar getPolyfill = __import___polyfill;\n\nmodule.exports = function shimStringTrim() {\n\tvar polyfill = getPolyfill();\n\tdefine(String.prototype, { trim: polyfill }, {\n\t\ttrim: function testTrim() {\n\t\t\treturn String.prototype.trim !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n", "import __import_callBind from \"call-bind\";import __import_defineProperties from \"define-properties\";import __import_esAbstract_2022_RequireObjectCoercible from \"es-abstract/2022/RequireObjectCoercible\";import __import___implementation from \"./implementation\";import __import___polyfill from \"./polyfill\";import __import___shim from \"./shim\";'use strict';\n\nvar callBind = __import_callBind;\nvar define = __import_defineProperties;\nvar RequireObjectCoercible = __import_esAbstract_2022_RequireObjectCoercible;\n\nvar implementation = __import___implementation;\nvar getPolyfill = __import___polyfill;\nvar shim = __import___shim;\n\nvar bound = callBind(getPolyfill());\nvar boundMethod = function trim(receiver) {\n\tRequireObjectCoercible(receiver);\n\treturn bound(receiver);\n};\n\ndefine(boundMethod, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = boundMethod;\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import_callBind_callBound from \"call-bind/callBound\";import __import_safeRegexTest from \"safe-regex-test\";import __import_string_prototype_trim from \"string.prototype.trim\";import __import___Type from \"./Type\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $Number = GetIntrinsic('%Number%');\nvar $RegExp = GetIntrinsic('%RegExp%');\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $parseInteger = GetIntrinsic('%parseInt%');\n\nvar callBound = __import_callBind_callBound;\nvar regexTester = __import_safeRegexTest;\n\nvar $strSlice = callBound('String.prototype.slice');\nvar isBinary = regexTester(/^0b[01]+$/i);\nvar isOctal = regexTester(/^0o[0-7]+$/i);\nvar isInvalidHexLiteral = regexTester(/^[-+]0x[0-9a-f]+$/i);\nvar nonWS = ['\\u0085', '\\u200b', '\\ufffe'].join('');\nvar nonWSregex = new $RegExp('[' + nonWS + ']', 'g');\nvar hasNonWS = regexTester(nonWSregex);\n\nvar $trim = __import_string_prototype_trim;\n\nvar Type = __import___Type;\n\n// https://262.ecma-international.org/13.0/#sec-stringtonumber\n\nmodule.exports = function StringToNumber(argument) {\n\tif (Type(argument) !== 'String') {\n\t\tthrow new $TypeError('Assertion failed: `argument` is not a String');\n\t}\n\tif (isBinary(argument)) {\n\t\treturn $Number($parseInteger($strSlice(argument, 2), 2));\n\t}\n\tif (isOctal(argument)) {\n\t\treturn $Number($parseInteger($strSlice(argument, 2), 8));\n\t}\n\tif (hasNonWS(argument) || isInvalidHexLiteral(argument)) {\n\t\treturn NaN;\n\t}\n\tvar trimmed = $trim(argument);\n\tif (trimmed !== argument) {\n\t\treturn StringToNumber(trimmed);\n\t}\n\treturn $Number(argument);\n};\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import____helpers_isPrimitive from \"../helpers/isPrimitive\";import __import___ToPrimitive from \"./ToPrimitive\";import __import___StringToNumber from \"./StringToNumber\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $Number = GetIntrinsic('%Number%');\nvar isPrimitive = __import____helpers_isPrimitive;\n\nvar ToPrimitive = __import___ToPrimitive;\nvar StringToNumber = __import___StringToNumber;\n\n// https://262.ecma-international.org/13.0/#sec-tonumber\n\nmodule.exports = function ToNumber(argument) {\n\tvar value = isPrimitive(argument) ? argument : ToPrimitive(argument, $Number);\n\tif (typeof value === 'symbol') {\n\t\tthrow new $TypeError('Cannot convert a Symbol value to a number');\n\t}\n\tif (typeof value === 'bigint') {\n\t\tthrow new $TypeError('Conversion from \\'BigInt\\' to \\'number\\' is not allowed.');\n\t}\n\tif (typeof value === 'string') {\n\t\treturn StringToNumber(value);\n\t}\n\treturn $Number(value);\n};\n", "'use strict';\n\nmodule.exports = function sign(number) {\n\treturn number >= 0 ? 1 : -1;\n};\n", "import __import___abs from \"./abs\";import __import___floor from \"./floor\";import __import___ToNumber from \"./ToNumber\";import __import____helpers_isNaN from \"../helpers/isNaN\";import __import____helpers_isFinite from \"../helpers/isFinite\";import __import____helpers_sign from \"../helpers/sign\";'use strict';\n\nvar abs = __import___abs;\nvar floor = __import___floor;\nvar ToNumber = __import___ToNumber;\n\nvar $isNaN = __import____helpers_isNaN;\nvar $isFinite = __import____helpers_isFinite;\nvar $sign = __import____helpers_sign;\n\n// https://262.ecma-international.org/12.0/#sec-tointegerorinfinity\n\nmodule.exports = function ToIntegerOrInfinity(value) {\n\tvar number = ToNumber(value);\n\tif ($isNaN(number) || number === 0) { return 0; }\n\tif (!$isFinite(number)) { return number; }\n\tvar integer = floor(abs(number));\n\tif (integer === 0) { return 0; }\n\treturn $sign(number) * integer;\n};\n", "import __import____helpers_maxSafeInteger from \"../helpers/maxSafeInteger\";import __import___ToIntegerOrInfinity from \"./ToIntegerOrInfinity\";'use strict';\n\nvar MAX_SAFE_INTEGER = __import____helpers_maxSafeInteger;\n\nvar ToIntegerOrInfinity = __import___ToIntegerOrInfinity;\n\nmodule.exports = function ToLength(argument) {\n\tvar len = ToIntegerOrInfinity(argument);\n\tif (len <= 0) { return 0; } // includes converting -0 to +0\n\tif (len > MAX_SAFE_INTEGER) { return MAX_SAFE_INTEGER; }\n\treturn len;\n};\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import_hasTostringtag_shams from \"has-tostringtag/shams\";import __import_has from \"has\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\n\nvar hasToStringTag = __import_hasTostringtag_shams();\nvar has = __import_has;\n\nvar toStringTag = hasToStringTag ? Symbol.toStringTag : null;\n\nmodule.exports = function setToStringTag(object, value) {\n\tvar overrideIfSet = arguments.length > 2 && arguments[2] && arguments[2].force;\n\tif (toStringTag && (overrideIfSet || !has(object, toStringTag))) {\n\t\tif ($defineProperty) {\n\t\t\t$defineProperty(object, toStringTag, {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: false,\n\t\t\t\tvalue: value,\n\t\t\t\twritable: false\n\t\t\t});\n\t\t} else {\n\t\t\tobject[toStringTag] = value; // eslint-disable-line no-param-reassign\n\t\t}\n\t}\n};\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import_hasSymbols from \"has-symbols\";import __import___AdvanceStringIndex from \"./AdvanceStringIndex\";import __import___CreateIterResultObject from \"./CreateIterResultObject\";import __import___CreateMethodProperty from \"./CreateMethodProperty\";import __import___Get from \"./Get\";import __import___OrdinaryObjectCreate from \"./OrdinaryObjectCreate\";import __import___RegExpExec from \"./RegExpExec\";import __import___Set from \"./Set\";import __import___ToLength from \"./ToLength\";import __import___ToString from \"./ToString\";import __import___Type from \"./Type\";import __import_internalSlot from \"internal-slot\";import __import_esSetTostringtag from \"es-set-tostringtag\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\nvar hasSymbols = __import_hasSymbols();\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar IteratorPrototype = GetIntrinsic('%IteratorPrototype%', true);\n\nvar AdvanceStringIndex = __import___AdvanceStringIndex;\nvar CreateIterResultObject = __import___CreateIterResultObject;\nvar CreateMethodProperty = __import___CreateMethodProperty;\nvar Get = __import___Get;\nvar OrdinaryObjectCreate = __import___OrdinaryObjectCreate;\nvar RegExpExec = __import___RegExpExec;\nvar Set = __import___Set;\nvar ToLength = __import___ToLength;\nvar ToString = __import___ToString;\nvar Type = __import___Type;\n\nvar SLOT = __import_internalSlot;\nvar setToStringTag = __import_esSetTostringtag;\n\nvar RegExpStringIterator = function RegExpStringIterator(R, S, global, fullUnicode) {\n\tif (Type(S) !== 'String') {\n\t\tthrow new $TypeError('`S` must be a string');\n\t}\n\tif (Type(global) !== 'Boolean') {\n\t\tthrow new $TypeError('`global` must be a boolean');\n\t}\n\tif (Type(fullUnicode) !== 'Boolean') {\n\t\tthrow new $TypeError('`fullUnicode` must be a boolean');\n\t}\n\tSLOT.set(this, '[[IteratingRegExp]]', R);\n\tSLOT.set(this, '[[IteratedString]]', S);\n\tSLOT.set(this, '[[Global]]', global);\n\tSLOT.set(this, '[[Unicode]]', fullUnicode);\n\tSLOT.set(this, '[[Done]]', false);\n};\n\nif (IteratorPrototype) {\n\tRegExpStringIterator.prototype = OrdinaryObjectCreate(IteratorPrototype);\n}\n\nvar RegExpStringIteratorNext = function next() {\n\tvar O = this; // eslint-disable-line no-invalid-this\n\tif (Type(O) !== 'Object') {\n\t\tthrow new $TypeError('receiver must be an object');\n\t}\n\tif (\n\t\t!(O instanceof RegExpStringIterator)\n\t\t|| !SLOT.has(O, '[[IteratingRegExp]]')\n\t\t|| !SLOT.has(O, '[[IteratedString]]')\n\t\t|| !SLOT.has(O, '[[Global]]')\n\t\t|| !SLOT.has(O, '[[Unicode]]')\n\t\t|| !SLOT.has(O, '[[Done]]')\n\t) {\n\t\tthrow new $TypeError('\"this\" value must be a RegExpStringIterator instance');\n\t}\n\tif (SLOT.get(O, '[[Done]]')) {\n\t\treturn CreateIterResultObject(undefined, true);\n\t}\n\tvar R = SLOT.get(O, '[[IteratingRegExp]]');\n\tvar S = SLOT.get(O, '[[IteratedString]]');\n\tvar global = SLOT.get(O, '[[Global]]');\n\tvar fullUnicode = SLOT.get(O, '[[Unicode]]');\n\tvar match = RegExpExec(R, S);\n\tif (match === null) {\n\t\tSLOT.set(O, '[[Done]]', true);\n\t\treturn CreateIterResultObject(undefined, true);\n\t}\n\tif (global) {\n\t\tvar matchStr = ToString(Get(match, '0'));\n\t\tif (matchStr === '') {\n\t\t\tvar thisIndex = ToLength(Get(R, 'lastIndex'));\n\t\t\tvar nextIndex = AdvanceStringIndex(S, thisIndex, fullUnicode);\n\t\t\tSet(R, 'lastIndex', nextIndex, true);\n\t\t}\n\t\treturn CreateIterResultObject(match, false);\n\t}\n\tSLOT.set(O, '[[Done]]', true);\n\treturn CreateIterResultObject(match, false);\n};\nCreateMethodProperty(RegExpStringIterator.prototype, 'next', RegExpStringIteratorNext);\n\nif (hasSymbols) {\n\tsetToStringTag(RegExpStringIterator.prototype, 'RegExp String Iterator');\n\n\tif (Symbol.iterator && typeof RegExpStringIterator.prototype[Symbol.iterator] !== 'function') {\n\t\tvar iteratorFn = function SymbolIterator() {\n\t\t\treturn this;\n\t\t};\n\t\tCreateMethodProperty(RegExpStringIterator.prototype, Symbol.iterator, iteratorFn);\n\t}\n}\n\n// https://262.ecma-international.org/11.0/#sec-createregexpstringiterator\nmodule.exports = function CreateRegExpStringIterator(R, S, global, fullUnicode) {\n\t// assert R.global === global && R.unicode === fullUnicode?\n\treturn new RegExpStringIterator(R, S, global, fullUnicode);\n};\n", "import __import_getIntrinsic from \"get-intrinsic\";'use strict';\n\n// TODO: remove, semver-major\n\nmodule.exports = __import_getIntrinsic;\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import_has from \"has\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar has = __import_has;\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nmodule.exports = function IsPropertyDescriptor(ES, Desc) {\n\tif (ES.Type(Desc) !== 'Object') {\n\t\treturn false;\n\t}\n\tvar allowed = {\n\t\t'[[Configurable]]': true,\n\t\t'[[Enumerable]]': true,\n\t\t'[[Get]]': true,\n\t\t'[[Set]]': true,\n\t\t'[[Value]]': true,\n\t\t'[[Writable]]': true\n\t};\n\n\tfor (var key in Desc) { // eslint-disable-line no-restricted-syntax\n\t\tif (has(Desc, key) && !allowed[key]) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tif (ES.IsDataDescriptor(Desc) && ES.IsAccessorDescriptor(Desc)) {\n\t\tthrow new $TypeError('Property Descriptors may not be both accessor and data descriptors');\n\t}\n\treturn true;\n};\n", "import __import_has from \"has\";import __import___Type from \"./Type\";import __import____helpers_assertRecord from \"../helpers/assertRecord\";'use strict';\n\nvar has = __import_has;\n\nvar Type = __import___Type;\n\nvar assertRecord = __import____helpers_assertRecord;\n\n// https://262.ecma-international.org/5.1/#sec-8.10.1\n\nmodule.exports = function IsAccessorDescriptor(Desc) {\n\tif (typeof Desc === 'undefined') {\n\t\treturn false;\n\t}\n\n\tassertRecord(Type, 'Property Descriptor', 'Desc', Desc);\n\n\tif (!has(Desc, '[[Get]]') && !has(Desc, '[[Set]]')) {\n\t\treturn false;\n\t}\n\n\treturn true;\n};\n", "import __import_has from \"has\";import __import_getIntrinsic from \"get-intrinsic\";import __import___Type from \"./Type\";import __import___ToBoolean from \"./ToBoolean\";import __import___IsCallable from \"./IsCallable\";'use strict';\n\nvar has = __import_has;\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar Type = __import___Type;\nvar ToBoolean = __import___ToBoolean;\nvar IsCallable = __import___IsCallable;\n\n// https://262.ecma-international.org/5.1/#sec-8.10.5\n\nmodule.exports = function ToPropertyDescriptor(Obj) {\n\tif (Type(Obj) !== 'Object') {\n\t\tthrow new $TypeError('ToPropertyDescriptor requires an object');\n\t}\n\n\tvar desc = {};\n\tif (has(Obj, 'enumerable')) {\n\t\tdesc['[[Enumerable]]'] = ToBoolean(Obj.enumerable);\n\t}\n\tif (has(Obj, 'configurable')) {\n\t\tdesc['[[Configurable]]'] = ToBoolean(Obj.configurable);\n\t}\n\tif (has(Obj, 'value')) {\n\t\tdesc['[[Value]]'] = Obj.value;\n\t}\n\tif (has(Obj, 'writable')) {\n\t\tdesc['[[Writable]]'] = ToBoolean(Obj.writable);\n\t}\n\tif (has(Obj, 'get')) {\n\t\tvar getter = Obj.get;\n\t\tif (typeof getter !== 'undefined' && !IsCallable(getter)) {\n\t\t\tthrow new $TypeError('getter must be a function');\n\t\t}\n\t\tdesc['[[Get]]'] = getter;\n\t}\n\tif (has(Obj, 'set')) {\n\t\tvar setter = Obj.set;\n\t\tif (typeof setter !== 'undefined' && !IsCallable(setter)) {\n\t\t\tthrow new $TypeError('setter must be a function');\n\t\t}\n\t\tdesc['[[Set]]'] = setter;\n\t}\n\n\tif ((has(desc, '[[Get]]') || has(desc, '[[Set]]')) && (has(desc, '[[Value]]') || has(desc, '[[Writable]]'))) {\n\t\tthrow new $TypeError('Invalid property descriptor. Cannot both specify accessors and a value or writable attribute');\n\t}\n\treturn desc;\n};\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import____helpers_isPropertyDescriptor from \"../helpers/isPropertyDescriptor\";import __import____helpers_DefineOwnProperty from \"../helpers/DefineOwnProperty\";import __import___FromPropertyDescriptor from \"./FromPropertyDescriptor\";import __import___IsAccessorDescriptor from \"./IsAccessorDescriptor\";import __import___IsDataDescriptor from \"./IsDataDescriptor\";import __import___IsPropertyKey from \"./IsPropertyKey\";import __import___SameValue from \"./SameValue\";import __import___ToPropertyDescriptor from \"./ToPropertyDescriptor\";import __import___Type from \"./Type\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar isPropertyDescriptor = __import____helpers_isPropertyDescriptor;\nvar DefineOwnProperty = __import____helpers_DefineOwnProperty;\n\nvar FromPropertyDescriptor = __import___FromPropertyDescriptor;\nvar IsAccessorDescriptor = __import___IsAccessorDescriptor;\nvar IsDataDescriptor = __import___IsDataDescriptor;\nvar IsPropertyKey = __import___IsPropertyKey;\nvar SameValue = __import___SameValue;\nvar ToPropertyDescriptor = __import___ToPropertyDescriptor;\nvar Type = __import___Type;\n\n// https://262.ecma-international.org/6.0/#sec-definepropertyorthrow\n\nmodule.exports = function DefinePropertyOrThrow(O, P, desc) {\n\tif (Type(O) !== 'Object') {\n\t\tthrow new $TypeError('Assertion failed: Type(O) is not Object');\n\t}\n\n\tif (!IsPropertyKey(P)) {\n\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t}\n\n\tvar Desc = isPropertyDescriptor({\n\t\tType: Type,\n\t\tIsDataDescriptor: IsDataDescriptor,\n\t\tIsAccessorDescriptor: IsAccessorDescriptor\n\t}, desc) ? desc : ToPropertyDescriptor(desc);\n\tif (!isPropertyDescriptor({\n\t\tType: Type,\n\t\tIsDataDescriptor: IsDataDescriptor,\n\t\tIsAccessorDescriptor: IsAccessorDescriptor\n\t}, Desc)) {\n\t\tthrow new $TypeError('Assertion failed: Desc is not a valid Property Descriptor');\n\t}\n\n\treturn DefineOwnProperty(\n\t\tIsDataDescriptor,\n\t\tSameValue,\n\t\tFromPropertyDescriptor,\n\t\tO,\n\t\tP,\n\t\tDesc\n\t);\n};\n", "import __import____GetIntrinsic_js from \"../GetIntrinsic.js\";import __import___DefinePropertyOrThrow from \"./DefinePropertyOrThrow\";'use strict';\n\nvar GetIntrinsic = __import____GetIntrinsic_js;\n\nvar $construct = GetIntrinsic('%Reflect.construct%', true);\n\nvar DefinePropertyOrThrow = __import___DefinePropertyOrThrow;\ntry {\n\tDefinePropertyOrThrow({}, '', { '[[Get]]': function () {} });\n} catch (e) {\n\t// Accessor properties aren't supported\n\tDefinePropertyOrThrow = null;\n}\n\n// https://262.ecma-international.org/6.0/#sec-isconstructor\n\nif (DefinePropertyOrThrow && $construct) {\n\tvar isConstructorMarker = {};\n\tvar badArrayLike = {};\n\tDefinePropertyOrThrow(badArrayLike, 'length', {\n\t\t'[[Get]]': function () {\n\t\t\tthrow isConstructorMarker;\n\t\t},\n\t\t'[[Enumerable]]': true\n\t});\n\n\tmodule.exports = function IsConstructor(argument) {\n\t\ttry {\n\t\t\t// `Reflect.construct` invokes `IsConstructor(target)` before `Get(args, 'length')`:\n\t\t\t$construct(argument, badArrayLike);\n\t\t} catch (err) {\n\t\t\treturn err === isConstructorMarker;\n\t\t}\n\t};\n} else {\n\tmodule.exports = function IsConstructor(argument) {\n\t\t// unfortunately there's no way to truly check this without try/catch `new argument` in old environments\n\t\treturn typeof argument === 'function' && !!argument.prototype;\n\t};\n}\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import___IsConstructor from \"./IsConstructor\";import __import___Type from \"./Type\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $species = GetIntrinsic('%Symbol.species%', true);\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar IsConstructor = __import___IsConstructor;\nvar Type = __import___Type;\n\n// https://262.ecma-international.org/6.0/#sec-speciesconstructor\n\nmodule.exports = function SpeciesConstructor(O, defaultConstructor) {\n\tif (Type(O) !== 'Object') {\n\t\tthrow new $TypeError('Assertion failed: Type(O) is not Object');\n\t}\n\tvar C = O.constructor;\n\tif (typeof C === 'undefined') {\n\t\treturn defaultConstructor;\n\t}\n\tif (Type(C) !== 'Object') {\n\t\tthrow new $TypeError('O.constructor is not an Object');\n\t}\n\tvar S = $species ? C[$species] : void 0;\n\tif (S == null) {\n\t\treturn defaultConstructor;\n\t}\n\tif (IsConstructor(S)) {\n\t\treturn S;\n\t}\n\tthrow new $TypeError('no constructor found');\n};\n", "import __import_esAbstract_2022_CreateRegExpStringIterator from \"es-abstract/2022/CreateRegExpStringIterator\";import __import_esAbstract_2022_Get from \"es-abstract/2022/Get\";import __import_esAbstract_2022_Set from \"es-abstract/2022/Set\";import __import_esAbstract_2022_SpeciesConstructor from \"es-abstract/2022/SpeciesConstructor\";import __import_esAbstract_2022_ToLength from \"es-abstract/2022/ToLength\";import __import_esAbstract_2022_ToString from \"es-abstract/2022/ToString\";import __import_esAbstract_2022_Type from \"es-abstract/2022/Type\";import __import_regexp_prototype_flags from \"regexp.prototype.flags\";import __import_callBind_callBound from \"call-bind/callBound\";'use strict';\n\n// var Construct = require('es-abstract/2022/Construct');\nvar CreateRegExpStringIterator = __import_esAbstract_2022_CreateRegExpStringIterator;\nvar Get = __import_esAbstract_2022_Get;\nvar Set = __import_esAbstract_2022_Set;\nvar SpeciesConstructor = __import_esAbstract_2022_SpeciesConstructor;\nvar ToLength = __import_esAbstract_2022_ToLength;\nvar ToString = __import_esAbstract_2022_ToString;\nvar Type = __import_esAbstract_2022_Type;\nvar flagsGetter = __import_regexp_prototype_flags;\nvar callBound = __import_callBind_callBound;\n\nvar $indexOf = callBound('String.prototype.indexOf');\n\nvar OrigRegExp = RegExp;\n\nvar supportsConstructingWithFlags = 'flags' in RegExp.prototype;\n\nvar constructRegexWithFlags = function constructRegex(C, R) {\n\tvar matcher;\n\t// workaround for older engines that lack RegExp.prototype.flags\n\tvar flags = 'flags' in R ? Get(R, 'flags') : ToString(flagsGetter(R));\n\tif (supportsConstructingWithFlags && typeof flags === 'string') {\n\t\tmatcher = new C(R, flags);\n\t} else if (C === OrigRegExp) {\n\t\t// workaround for older engines that can not construct a RegExp with flags\n\t\tmatcher = new C(R.source, flags);\n\t} else {\n\t\tmatcher = new C(R, flags);\n\t}\n\treturn { flags: flags, matcher: matcher };\n};\n\nvar regexMatchAll = function SymbolMatchAll(string) {\n\tvar R = this;\n\tif (Type(R) !== 'Object') {\n\t\tthrow new TypeError('\"this\" value must be an Object');\n\t}\n\tvar S = ToString(string);\n\tvar C = SpeciesConstructor(R, OrigRegExp);\n\n\tvar tmp = constructRegexWithFlags(C, R);\n\t// var flags = ToString(Get(R, 'flags'));\n\tvar flags = tmp.flags;\n\t// var matcher = Construct(C, [R, flags]);\n\tvar matcher = tmp.matcher;\n\n\tvar lastIndex = ToLength(Get(R, 'lastIndex'));\n\tSet(matcher, 'lastIndex', lastIndex, true);\n\tvar global = $indexOf(flags, 'g') > -1;\n\tvar fullUnicode = $indexOf(flags, 'u') > -1;\n\treturn CreateRegExpStringIterator(matcher, S, global, fullUnicode);\n};\n\nvar defineP = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nif (defineP && gOPD) {\n\tvar desc = gOPD(regexMatchAll, 'name');\n\tif (desc && desc.configurable) {\n\t\tdefineP(regexMatchAll, 'name', { value: '[Symbol.matchAll]' });\n\t}\n}\n\nmodule.exports = regexMatchAll;\n", "import __import_hasSymbols from \"has-symbols\";import __import___regexpMatchall from \"./regexp-matchall\";'use strict';\n\nvar hasSymbols = __import_hasSymbols();\nvar regexpMatchAll = __import___regexpMatchall;\n\nmodule.exports = function getRegExpMatchAllPolyfill() {\n\tif (!hasSymbols || typeof Symbol.matchAll !== 'symbol' || typeof RegExp.prototype[Symbol.matchAll] !== 'function') {\n\t\treturn regexpMatchAll;\n\t}\n\treturn RegExp.prototype[Symbol.matchAll];\n};\n", "import __import_esAbstract_2022_Call from \"es-abstract/2022/Call\";import __import_esAbstract_2022_Get from \"es-abstract/2022/Get\";import __import_esAbstract_2022_GetMethod from \"es-abstract/2022/GetMethod\";import __import_esAbstract_2022_IsRegExp from \"es-abstract/2022/IsRegExp\";import __import_esAbstract_2022_ToString from \"es-abstract/2022/ToString\";import __import_esAbstract_2022_RequireObjectCoercible from \"es-abstract/2022/RequireObjectCoercible\";import __import_callBind_callBound from \"call-bind/callBound\";import __import_hasSymbols from \"has-symbols\";import __import_regexp_prototype_flags from \"regexp.prototype.flags\";import __import___polyfillRegexpMatchall from \"./polyfill-regexp-matchall\";'use strict';\n\nvar Call = __import_esAbstract_2022_Call;\nvar Get = __import_esAbstract_2022_Get;\nvar GetMethod = __import_esAbstract_2022_GetMethod;\nvar IsRegExp = __import_esAbstract_2022_IsRegExp;\nvar ToString = __import_esAbstract_2022_ToString;\nvar RequireObjectCoercible = __import_esAbstract_2022_RequireObjectCoercible;\nvar callBound = __import_callBind_callBound;\nvar hasSymbols = __import_hasSymbols();\nvar flagsGetter = __import_regexp_prototype_flags;\n\nvar $indexOf = callBound('String.prototype.indexOf');\n\nvar regexpMatchAllPolyfill = __import___polyfillRegexpMatchall;\n\nvar getMatcher = function getMatcher(regexp) { // eslint-disable-line consistent-return\n\tvar matcherPolyfill = regexpMatchAllPolyfill();\n\tif (hasSymbols && typeof Symbol.matchAll === 'symbol') {\n\t\tvar matcher = GetMethod(regexp, Symbol.matchAll);\n\t\tif (matcher === RegExp.prototype[Symbol.matchAll] && matcher !== matcherPolyfill) {\n\t\t\treturn matcherPolyfill;\n\t\t}\n\t\treturn matcher;\n\t}\n\t// fallback for pre-Symbol.matchAll environments\n\tif (IsRegExp(regexp)) {\n\t\treturn matcherPolyfill;\n\t}\n};\n\nmodule.exports = function matchAll(regexp) {\n\tvar O = RequireObjectCoercible(this);\n\n\tif (typeof regexp !== 'undefined' && regexp !== null) {\n\t\tvar isRegExp = IsRegExp(regexp);\n\t\tif (isRegExp) {\n\t\t\t// workaround for older engines that lack RegExp.prototype.flags\n\t\t\tvar flags = 'flags' in regexp ? Get(regexp, 'flags') : flagsGetter(regexp);\n\t\t\tRequireObjectCoercible(flags);\n\t\t\tif ($indexOf(ToString(flags), 'g') < 0) {\n\t\t\t\tthrow new TypeError('matchAll requires a global regular expression');\n\t\t\t}\n\t\t}\n\n\t\tvar matcher = getMatcher(regexp);\n\t\tif (typeof matcher !== 'undefined') {\n\t\t\treturn Call(matcher, regexp, [O]);\n\t\t}\n\t}\n\n\tvar S = ToString(O);\n\t// var rx = RegExpCreate(regexp, 'g');\n\tvar rx = new RegExp(regexp, 'g');\n\treturn Call(getMatcher(rx), rx, [S]);\n};\n", "import __import___implementation from \"./implementation\";'use strict';\n\nvar implementation = __import___implementation;\n\nmodule.exports = function getPolyfill() {\n\tif (String.prototype.matchAll) {\n\t\ttry {\n\t\t\t''.matchAll(RegExp.prototype);\n\t\t} catch (e) {\n\t\t\treturn String.prototype.matchAll;\n\t\t}\n\t}\n\treturn implementation;\n};\n", "import __import_defineProperties from \"define-properties\";import __import_hasSymbols from \"has-symbols\";import __import___polyfill from \"./polyfill\";import __import___polyfillRegexpMatchall from \"./polyfill-regexp-matchall\";'use strict';\n\nvar define = __import_defineProperties;\nvar hasSymbols = __import_hasSymbols();\nvar getPolyfill = __import___polyfill;\nvar regexpMatchAllPolyfill = __import___polyfillRegexpMatchall;\n\nvar defineP = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nmodule.exports = function shimMatchAll() {\n\tvar polyfill = getPolyfill();\n\tdefine(\n\t\tString.prototype,\n\t\t{ matchAll: polyfill },\n\t\t{ matchAll: function () { return String.prototype.matchAll !== polyfill; } }\n\t);\n\tif (hasSymbols) {\n\t\t// eslint-disable-next-line no-restricted-properties\n\t\tvar symbol = Symbol.matchAll || (Symbol['for'] ? Symbol['for']('Symbol.matchAll') : Symbol('Symbol.matchAll'));\n\t\tdefine(\n\t\t\tSymbol,\n\t\t\t{ matchAll: symbol },\n\t\t\t{ matchAll: function () { return Symbol.matchAll !== symbol; } }\n\t\t);\n\n\t\tif (defineP && gOPD) {\n\t\t\tvar desc = gOPD(Symbol, symbol);\n\t\t\tif (!desc || desc.configurable) {\n\t\t\t\tdefineP(Symbol, symbol, {\n\t\t\t\t\tconfigurable: false,\n\t\t\t\t\tenumerable: false,\n\t\t\t\t\tvalue: symbol,\n\t\t\t\t\twritable: false\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tvar regexpMatchAll = regexpMatchAllPolyfill();\n\t\tvar func = {};\n\t\tfunc[symbol] = regexpMatchAll;\n\t\tvar predicate = {};\n\t\tpredicate[symbol] = function () {\n\t\t\treturn RegExp.prototype[symbol] !== regexpMatchAll;\n\t\t};\n\t\tdefine(RegExp.prototype, func, predicate);\n\t}\n\treturn polyfill;\n};\n", "import __import_callBind from \"call-bind\";import __import_defineProperties from \"define-properties\";import __import___implementation from \"./implementation\";import __import___polyfill from \"./polyfill\";import __import___shim from \"./shim\";'use strict';\n\nvar callBind = __import_callBind;\nvar define = __import_defineProperties;\n\nvar implementation = __import___implementation;\nvar getPolyfill = __import___polyfill;\nvar shim = __import___shim;\n\nvar boundMatchAll = callBind(implementation);\n\ndefine(boundMatchAll, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = boundMatchAll;\n", "// ISC @ Julien Fontanet\n\n\"use strict\";\n\n// ===================================================================\n\nvar construct = typeof Reflect !== \"undefined\" ? Reflect.construct : undefined;\nvar defineProperty = Object.defineProperty;\n\n// -------------------------------------------------------------------\n\nvar captureStackTrace = Error.captureStackTrace;\nif (captureStackTrace === undefined) {\n captureStackTrace = function captureStackTrace(error) {\n var container = new Error();\n\n defineProperty(error, \"stack\", {\n configurable: true,\n get: function getStack() {\n var stack = container.stack;\n\n // Replace property with value for faster future accesses.\n defineProperty(this, \"stack\", {\n configurable: true,\n value: stack,\n writable: true,\n });\n\n return stack;\n },\n set: function setStack(stack) {\n defineProperty(error, \"stack\", {\n configurable: true,\n value: stack,\n writable: true,\n });\n },\n });\n };\n}\n\n// -------------------------------------------------------------------\n\nfunction BaseError(message) {\n if (message !== undefined) {\n defineProperty(this, \"message\", {\n configurable: true,\n value: message,\n writable: true,\n });\n }\n\n var cname = this.constructor.name;\n if (cname !== undefined && cname !== this.name) {\n defineProperty(this, \"name\", {\n configurable: true,\n value: cname,\n writable: true,\n });\n }\n\n captureStackTrace(this, this.constructor);\n}\n\nBaseError.prototype = Object.create(Error.prototype, {\n // See: https://github.com/JsCommunity/make-error/issues/4\n constructor: {\n configurable: true,\n value: BaseError,\n writable: true,\n },\n});\n\n// -------------------------------------------------------------------\n\n// Sets the name of a function if possible (depends of the JS engine).\nvar setFunctionName = (function() {\n function setFunctionName(fn, name) {\n return defineProperty(fn, \"name\", {\n configurable: true,\n value: name,\n });\n }\n try {\n var f = function() {};\n setFunctionName(f, \"foo\");\n if (f.name === \"foo\") {\n return setFunctionName;\n }\n } catch (_) {}\n})();\n\n// -------------------------------------------------------------------\n\nfunction makeError(constructor, super_) {\n if (super_ == null || super_ === Error) {\n super_ = BaseError;\n } else if (typeof super_ !== \"function\") {\n throw new TypeError(\"super_ should be a function\");\n }\n\n var name;\n if (typeof constructor === \"string\") {\n name = constructor;\n constructor =\n construct !== undefined\n ? function() {\n return construct(super_, arguments, this.constructor);\n }\n : function() {\n super_.apply(this, arguments);\n };\n\n // If the name can be set, do it once and for all.\n if (setFunctionName !== undefined) {\n setFunctionName(constructor, name);\n name = undefined;\n }\n } else if (typeof constructor !== \"function\") {\n throw new TypeError(\"constructor should be either a string or a function\");\n }\n\n // Also register the super constructor also as `constructor.super_` just\n // like Node's `util.inherits()`.\n //\n // eslint-disable-next-line dot-notation\n constructor.super_ = constructor[\"super\"] = super_;\n\n var properties = {\n constructor: {\n configurable: true,\n value: constructor,\n writable: true,\n },\n };\n\n // If the name could not be set on the constructor, set it on the\n // prototype.\n if (name !== undefined) {\n properties.name = {\n configurable: true,\n value: name,\n writable: true,\n };\n }\n constructor.prototype = Object.create(super_.prototype, properties);\n\n return constructor;\n}\nexports = module.exports = makeError;\nexports.BaseError = BaseError;\n", "'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn Object.propertyIsEnumerable.call(target, symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n", "'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n", "/*!\n * isobject <https://github.com/jonschlinkert/isobject>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nmodule.exports = function isObject(val) {\n return val != null && typeof val === 'object' && Array.isArray(val) === false;\n};\n", "import __import_isobject from \"isobject\";/*!\n * is-plain-object <https://github.com/jonschlinkert/is-plain-object>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nvar isObject = __import_isobject;\n\nfunction isObjectObject(o) {\n return isObject(o) === true\n && Object.prototype.toString.call(o) === '[object Object]';\n}\n\nmodule.exports = function isPlainObject(o) {\n var ctor,prot;\n\n if (isObjectObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (typeof ctor !== 'function') return false;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObjectObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n};\n", "import __import_isPlainObject from \"is-plain-object\";/*!\n * is-extendable <https://github.com/jonschlinkert/is-extendable>\n *\n * Copyright (c) 2015-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nvar isPlainObject = __import_isPlainObject;\n\nmodule.exports = function isExtendable(val) {\n return isPlainObject(val) || typeof val === 'function' || Array.isArray(val);\n};\n", "import __import_isExtendable from \"is-extendable\";/*!\n * object.omit <https://github.com/jonschlinkert/object.omit>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nvar isObject = __import_isExtendable;\n\nmodule.exports = function omit(obj, props, fn) {\n if (!isObject(obj)) return {};\n\n if (typeof props === 'function') {\n fn = props;\n props = [];\n }\n\n if (typeof props === 'string') {\n props = [props];\n }\n\n var isFunction = typeof fn === 'function';\n var keys = Object.keys(obj);\n var res = {};\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var val = obj[key];\n\n if (!props || (props.indexOf(key) === -1 && (!isFunction || fn(val, key, obj)))) {\n res[key] = val;\n }\n }\n return res;\n};\n", "import __import_isobject from \"isobject\";/*!\n * object.pick <https://github.com/jonschlinkert/object.pick>\n *\n * Copyright (c) 2014-2015 Jon Schlinkert, contributors.\n * Licensed under the MIT License\n */\n\n'use strict';\n\nvar isObject = __import_isobject;\n\nmodule.exports = function pick(obj, keys) {\n if (!isObject(obj) && typeof obj !== 'function') {\n return {};\n }\n\n var res = {};\n if (typeof keys === 'string') {\n if (keys in obj) {\n res[keys] = obj[keys];\n }\n return res;\n }\n\n var len = keys.length;\n var idx = -1;\n\n while (++idx < len) {\n var key = keys[idx];\n if (key in obj) {\n res[key] = obj[key];\n }\n }\n return res;\n};\n", "'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , undef;\n\n/**\n * Decode a URI encoded string.\n *\n * @param {String} input The URI encoded string.\n * @returns {String|Null} The decoded string.\n * @api private\n */\nfunction decode(input) {\n try {\n return decodeURIComponent(input.replace(/\\+/g, ' '));\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Attempts to encode a given input.\n *\n * @param {String} input The string that needs to be encoded.\n * @returns {String|Null} The encoded string.\n * @api private\n */\nfunction encode(input) {\n try {\n return encodeURIComponent(input);\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Simple query string parser.\n *\n * @param {String} query The query string that needs to be parsed.\n * @returns {Object}\n * @api public\n */\nfunction querystring(query) {\n var parser = /([^=?#&]+)=?([^&]*)/g\n , result = {}\n , part;\n\n while (part = parser.exec(query)) {\n var key = decode(part[1])\n , value = decode(part[2]);\n\n //\n // Prevent overriding of existing properties. This ensures that build-in\n // methods like `toString` or __proto__ are not overriden by malicious\n // querystrings.\n //\n // In the case if failed decoding, we want to omit the key/value pairs\n // from the result.\n //\n if (key === null || value === null || key in result) continue;\n result[key] = value;\n }\n\n return result;\n}\n\n/**\n * Transform a query string to an object.\n *\n * @param {Object} obj Object that should be transformed.\n * @param {String} prefix Optional prefix.\n * @returns {String}\n * @api public\n */\nfunction querystringify(obj, prefix) {\n prefix = prefix || '';\n\n var pairs = []\n , value\n , key;\n\n //\n // Optionally prefix with a '?' if needed\n //\n if ('string' !== typeof prefix) prefix = '?';\n\n for (key in obj) {\n if (has.call(obj, key)) {\n value = obj[key];\n\n //\n // Edge cases where we actually want to encode the value to an empty\n // string instead of the stringified value.\n //\n if (!value && (value === null || value === undef || isNaN(value))) {\n value = '';\n }\n\n key = encode(key);\n value = encode(value);\n\n //\n // If we failed to encode the strings, we should bail out as we don't\n // want to add invalid strings to the query.\n //\n if (key === null || value === null) continue;\n pairs.push(key +'='+ value);\n }\n }\n\n return pairs.length ? prefix + pairs.join('&') : '';\n}\n\n//\n// Expose the module.\n//\nexports.stringify = querystringify;\nexports.parse = querystring;\n", "import { Remirror } from '@remirror/react'\nimport { createContextState } from 'create-context-state'\nimport React, { memo, useCallback, useMemo } from 'react'\nimport Text from '../Text'\nimport type { EditorDelegate } from '../../types'\nimport { ProsemirrorDevTools } from '@remirror/dev'\nimport { createSourceCodeDelegate } from './delegate'\nimport ErrorBoundary from '../ErrorBoundary'\nimport type { EditorProps } from '../Editor'\nimport type { Extension, RemirrorEventListener } from 'remirror'\n\ntype Context = Props\n\ntype Props = {\n markText: EditorDelegate\n} & Partial<EditorProps>\n\nconst [SourceEditorProvider, useSourceCodeEditor] = createContextState<Context, Props>(\n ({ props }) => {\n return {\n ...props,\n }\n },\n)\n\nconst SourceCodeEditorCore = memo((props: { markdownToolBar?: React.ReactNode[], onChange: RemirrorEventListener<Extension> }) => {\n const { markdownToolBar } = props\n const { content, markText, hooks, isTesting, editable } = useSourceCodeEditor()\n\n let initialCntent\n\n try {\n initialCntent = markText.stringToDoc(content!)\n } catch (error) {\n return <ErrorBoundary hasError error={error} />\n }\n\n return (\n <ErrorBoundary>\n <Remirror\n manager={markText.manager}\n initialContent={initialCntent}\n hooks={hooks}\n editable={editable}\n onChange={props.onChange}\n >\n <Text className='h-full w-full overflow-auto px-0' style={{ padding: 0 }} />\n {markdownToolBar || null}\n {isTesting ? <ProsemirrorDevTools /> : null}\n </Remirror>\n </ErrorBoundary>\n )\n})\n\n/**\n * The editor which is used to create the annotation. Supports formatting.\n */\nconst SourceEditor: React.FC<EditorProps> = (props) => {\n const { content, delegate, isTesting, hooks, markdownToolBar } = props\n\n const editorDelegate = useMemo(() => delegate ?? createSourceCodeDelegate(), [delegate])\n\n const handleChange: RemirrorEventListener<Extension> = useCallback(\n (params) => {\n try {\n const textContent = editorDelegate.docToString(params.state.doc)\n props.onChange?.(params, textContent)\n } catch (error) {\n console.error(error)\n }\n },\n [editorDelegate, props],\n )\n\n return (\n <SourceEditorProvider\n content={content}\n isTesting={isTesting}\n markText={editorDelegate}\n hooks={hooks}\n >\n <SourceCodeEditorCore markdownToolBar={markdownToolBar} onChange={handleChange} />\n </SourceEditorProvider>\n )\n}\n\nexport default memo(SourceEditor)\n\nexport * from './delegate'\n", "import { useRemirrorContext } from '@remirror/react'\nimport type { CSSProperties, FC } from 'react'\nimport React from 'react'\nimport styled, { css } from 'styled-components'\n\nconst Container = styled.div<{ codeEditor?: boolean }>`\n position: relative;\n padding: 0.5em 1em 1em;\n white-space: pre-wrap;\n min-height: 100px;\n flex: 1;\n\n .remirror-is-empty::before {\n position: absolute;\n pointer-events: none;\n height: 0;\n font-style: italic;\n content: attr(data-placeholder);\n }\n\n .remirror-editor {\n /* height: 100%; */\n outline: none;\n }\n\n .cm-editor {\n height: 100%;\n }\n\n .remirror-floating-popover {\n /* padding: var(--rmr-space-2); */\n padding: 0;\n border: none;\n max-height: calc(100vh - 56px);\n }\n\n .remirror-positioner {\n position: absolute;\n min-width: 1px;\n min-height: 1px;\n pointer-events: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n cursor: none;\n z-index: -1;\n }\n\n .remirror-positioner-widget {\n width: 0;\n height: 0;\n position: absolute;\n }\n\n .remirror-emoji-wrapper img {\n width: 1em;\n vertical-align: middle;\n background-color: transparent;\n }\n\n ${(props) =>\n props.codeEditor &&\n css`\n padding: 0;\n min-height: unset;\n `}\n`\n\ninterface ITextProps {\n children?: React.ReactNode\n className?: string\n style?: CSSProperties\n codeEditor?: boolean\n}\n\nconst Text: FC<ITextProps> = ({ children, ...props }) => {\n const { getRootProps } = useRemirrorContext()\n\n return (\n <Container {...props} {...getRootProps()}>\n {children}\n </Container>\n )\n}\n\nexport default Text\n", "import { createReactManager } from '@remirror/react'\nimport type { StringToDoc, DocToString, EditorDelegate } from '../../types'\nimport { DocExtension } from 'remirror/extensions'\nimport type { RemirrorManager } from 'remirror'\nimport { LineCodeMirrorExtension } from '../../extensions/CodeMirror/codemirror-extension'\nimport { markdown } from '@codemirror/lang-markdown'\nimport { basicSetup } from '../../extensions/CodeMirror/setup'\nimport { CountExtension } from '@remirror/extension-count'\n\nexport function createSourceCodeManager(): RemirrorManager<any> {\n return createReactManager(() => [\n new CountExtension({}),\n new DocExtension({ content: 'codeMirror' }),\n new LineCodeMirrorExtension({\n hideDecoration: true,\n extensions: [basicSetup, markdown()],\n }),\n ])\n}\n\nexport const createSourceCodeDelegate = (): EditorDelegate<any> => {\n const manager = createSourceCodeManager()\n\n const stringToDoc: StringToDoc = (content: string) => {\n const schema = manager.schema\n const attrs = { language: 'markdown' }\n const child = content ? schema.text(content) : undefined\n return schema.nodes.doc.create({}, schema.nodes.codeMirror.create(attrs, child))\n }\n\n const docToString: DocToString = (doc) => {\n return doc.textContent\n }\n\n return { manager, stringToDoc, docToString, view: 'SourceCode' }\n}\n", "import type { Node, NodeType, Schema } from '@remirror/pm/model'\nimport { Mark } from '@remirror/pm/model'\nimport MarkdownIt from 'markdown-it'\nimport type Token from 'markdown-it/lib/token'\n\nimport markdownItListCheckbox from './markdown-it-list-checkbox'\n\nimport type {\n BlockParserRule,\n ContextParserRule,\n InlineParserRule,\n ParserRule,\n ParserRuleContext,\n TextParserRule,\n} from './parser-type'\nimport { ParserRuleType } from './parser-type'\nimport MarkdownItHtmlInline from './markdown-it-html-inline'\n\ninterface StackItem {\n type: NodeType\n attrs?: Record<string, any>\n content: Node[]\n}\n\nexport type TokenHandler = (state: MarkdownParseState, tok: Token) => void\nexport type TokenHandlers = Record<string, TokenHandler>\n\nexport class UnknowMarkdownItTokenError extends Error {\n constructor(\n public tokenType: string,\n public supportedTokenTypes: string[],\n ) {\n super(`MarkdownIt token type '${tokenType}' not supported. `)\n this.tokenType = tokenType\n }\n}\n\nexport class MarkdownParseState {\n private schema: Schema\n private marks: readonly Mark[]\n private tokenHandlers: TokenHandlers\n private contextStack: ParserRuleContext[]\n\n public stack: StackItem[]\n\n public constructor(schema: Schema, tokenHandlers: TokenHandlers) {\n this.schema = schema\n this.stack = [{ type: schema.topNodeType, content: [] }]\n this.contextStack = []\n this.marks = Mark.none\n this.tokenHandlers = tokenHandlers\n }\n\n public top(): StackItem {\n return this.stack[this.stack.length - 1]\n }\n\n public push(node: Node): void {\n if (this.stack.length) this.top().content.push(node)\n }\n\n // Adds the given text to the current position in the document,\n // using the current marks as styling.\n public addText(text: string): void {\n if (!text) return\n\n const top = this.top()\n const nodes = top.content\n const last: Node | undefined = nodes[nodes.length - 1]\n const node = this.schema.text(text, this.marks)\n let merged: Node | undefined\n if (last && (merged = this.mergeTextNode(last, node))) nodes[nodes.length - 1] = merged\n else nodes.push(node)\n }\n\n private mergeTextNode(a: Node, b: Node): Node | undefined {\n if (a.isText && b.isText && Mark.sameSet(a.marks, b.marks)) {\n const text: string = (a.text || '') + (b.text || '')\n return a.type.schema.text(text, a.marks)\n }\n }\n\n // Adds the given mark to the set of active marks.\n public openMark(mark: Mark): void {\n this.marks = mark.addToSet(this.marks)\n }\n\n // Removes the given mark from the set of active marks.\n public closeMark(mark: Mark): void {\n this.marks = mark.removeFromSet(this.marks)\n }\n\n public parseTokens(toks: Token[]): void {\n for (const tok of toks) {\n const handler = this.tokenHandlers[tok.type]\n if (!handler) return\n if (!handler) throw new UnknowMarkdownItTokenError(tok.type, Object.keys(this.tokenHandlers))\n handler(this, tok)\n }\n }\n\n // Add a node at the current position.\n public addNode(type: NodeType, attrs?: Record<string, any>, content?: Node[]): Node {\n const node = type.createAndFill(attrs, content, this.marks)\n if (!node) {\n throw new Error(`unexpected error: node is empty while creating ${type.name} node`)\n }\n this.push(node)\n return node\n }\n\n // Wrap subsequent content in a node of the given type.\n public openNode(type: NodeType, attrs?: Record<string, any>): void {\n this.stack.push({ type: type, attrs: attrs, content: [] })\n }\n\n // Close and return the node that is currently on top of the stack.\n public closeNode(): Node {\n if (this.marks.length) this.marks = Mark.none\n const info = this.stack.pop()\n if (!info) {\n throw new Error('unexpected error: info is empty')\n }\n return this.addNode(info.type, info.attrs, info.content)\n }\n\n public openContext(context: ParserRuleContext): void {\n this.contextStack.push(context)\n }\n\n public closeContext() {\n this.contextStack.pop()\n }\n\n public topContext(): ParserRuleContext | undefined {\n return this.contextStack[this.contextStack.length - 1]\n }\n}\n\nfunction withoutTrailingNewline(str: string): string {\n return str.endsWith('\\n') ? str.slice(0, str.length - 1) : str\n}\n\nfunction buildBlockTokenHandler(\n parserRule: BlockParserRule,\n handlers: TokenHandlers,\n schema: Schema,\n): void {\n const nodeType: NodeType = schema.nodes[parserRule.node]\n if (nodeType === undefined) {\n throw new RangeError(`Can't find block type '${parserRule.node}'`)\n }\n if (parserRule.hasOpenClose) {\n handlers[parserRule.token + '_open'] = (state: MarkdownParseState, tok: Token) => {\n const attrs = parserRule.getAttrs ? parserRule.getAttrs(tok) : undefined\n state.openNode(nodeType, attrs)\n }\n handlers[parserRule.token + '_close'] = (state: MarkdownParseState) => {\n state.closeNode()\n }\n } else {\n handlers[parserRule.token] = (state: MarkdownParseState, tok: Token) => {\n const attrs = parserRule.getAttrs ? parserRule.getAttrs(tok) : undefined\n state.openNode(nodeType, attrs)\n state.addText(withoutTrailingNewline(tok.content))\n state.closeNode()\n }\n }\n}\n\nfunction buildContextTokenHandler(parserRule: ContextParserRule, handlers: TokenHandlers): void {\n handlers[parserRule.token + '_open'] = (state: MarkdownParseState) => {\n state.openContext(parserRule.context)\n }\n handlers[parserRule.token + '_close'] = (state: MarkdownParseState) => {\n state.closeContext()\n }\n}\n\nfunction buildInlineNodeHandler(\n parserRule: InlineParserRule,\n handlers: TokenHandlers,\n schema: Schema,\n) {\n const nodeType: NodeType = schema.nodes[parserRule.token]\n if (nodeType === undefined) {\n throw new RangeError(`Can't find inline type '${parserRule.token}'`)\n }\n handlers[parserRule.token] = (state: MarkdownParseState, tok: Token) => {\n const attrs = tok.attrs || null\n const inlinNode = schema.nodes[tok.type]?.createAndFill(attrs)\n if (inlinNode) {\n state.push(inlinNode)\n }\n }\n}\n\nfunction buildTextTokenHandler(parserRule: TextParserRule, handlers: TokenHandlers): void {\n handlers[parserRule.token] = (state: MarkdownParseState, tok: Token) => {\n state.addText(parserRule.getText(tok))\n }\n}\n\nfunction buildTokenHandlers(schema: Schema, parserRules: ParserRule[]): TokenHandlers {\n const handlers: TokenHandlers = {}\n for (const parserRule of parserRules) {\n switch (parserRule.type) {\n case ParserRuleType.text:\n buildTextTokenHandler(parserRule, handlers)\n break\n case ParserRuleType.block:\n buildBlockTokenHandler(parserRule, handlers, schema)\n break\n case ParserRuleType.context:\n buildContextTokenHandler(parserRule, handlers)\n break\n case ParserRuleType.ignore:\n handlers[parserRule.token] = () => {}\n break\n case ParserRuleType.inline:\n buildInlineNodeHandler(parserRule, handlers, schema)\n break\n case ParserRuleType.free:\n handlers[parserRule.token] = parserRule.handler\n break\n default:\n throw new Error(`unknown parser rule type`)\n }\n }\n\n return handlers\n}\n\nexport class MarkdownParser {\n private schema: Schema\n private tokenizer: MarkdownIt\n private tokenHandlers: TokenHandlers\n\n public constructor(schema: Schema, parserRules: ParserRule[]) {\n this.schema = schema\n this.tokenizer = MarkdownIt('commonmark', { html: true })\n .disable(['emphasis', 'autolink', 'backticks', 'entity'])\n .enable(['table'])\n .use(markdownItListCheckbox)\n .use(MarkdownItHtmlInline)\n\n this.tokenHandlers = buildTokenHandlers(schema, parserRules)\n }\n\n public parse(text: string): Node {\n const state = new MarkdownParseState(this.schema, this.tokenHandlers)\n let doc: Node\n const mdTokens: Token[] = this.tokenizer.parse(text, {})\n console.log('tokens', mdTokens)\n state.parseTokens(mdTokens)\n do {\n doc = state.closeNode()\n } while (state.stack.length)\n return doc\n }\n}\n", "import type MarkdownIt from \"markdown-it\"\nimport type Core from \"markdown-it/lib/parser_core\"\nimport type StateCore from \"markdown-it/lib/rules_core/state_core\"\nimport Token from \"markdown-it/lib/token\"\n\nfunction isBulletListItemToken(t: Token) {\n return t.type === \"list_item_open\" && [\"*\", \"-\"].includes(t.markup)\n}\nfunction isParagraphOpenToken(t: Token) {\n return t.type === \"paragraph_open\"\n}\nfunction isInlineToken(t: Token) {\n return t.type === \"inline\"\n}\n\nconst rule: Core.RuleCore = (state: StateCore) => {\n let edited = false\n const tokens = state.tokens\n const tokensLength = tokens.length\n for (let i = tokensLength - 3; i >= 0; i--) {\n if (isBulletListItemToken(tokens[i]) && isParagraphOpenToken(tokens[i + 1]) && isInlineToken(tokens[i + 2])) {\n const inlineToken = tokens[i + 2]\n const match = /^\\[([ |x])\\]\\s?/.exec(inlineToken.content)\n if (match) {\n const checked = match[1] === \"x\"\n inlineToken.content = inlineToken.content.slice(match[0].length)\n const checkboxToken = new Token(\"list_checkbox\", \"input\", 0)\n checkboxToken.attrPush([\"type\", \"checkbox\"])\n if (checked) {\n checkboxToken.attrPush([\"checked\", \"\"])\n }\n tokens.splice(i + 1, 0, checkboxToken)\n edited = true\n }\n }\n }\n return edited\n}\n\n// A markdown-it plugin for selectable list checkbox\nfunction MarkdownItListCheckbox(md: MarkdownIt) {\n md.core.ruler.push(\"markdown-it-list-checkbox\", rule)\n}\n\nexport default MarkdownItListCheckbox\n", "import type MarkdownIt from 'markdown-it'\nimport type Core from 'markdown-it/lib/parser_core'\nimport type StateCore from 'markdown-it/lib/rules_core/state_core'\nimport Token from 'markdown-it/lib/token'\nimport { getAttrsBySignalHtmlContent, getTagName, isClosingTag, isSingleNode } from '@/utils/html'\n\nexport const needSplitInlineHtmlTokenTags = ['img', 'iframe']\n\nexport const excludeHtmlInlineNodes = ['html_image', 'iframe_inline']\n\nconst typeMap: Record<string, string> = {\n img: 'html_image',\n iframe: 'iframe_inline',\n}\n\nfunction splitHtmlInlineTokens(t: Token) {\n if (!t.children) return []\n\n return t.children.map((child) => {\n if (\n isHtmlInlineToken(child) &&\n needSplitInlineHtmlTokenTags.includes(child.tag) &&\n !isClosingTag(child.content)\n ) {\n const newToken = new Token(typeMap[child.tag], '', 0)\n newToken.content = child.content\n newToken.attrs = getAttrsBySignalHtmlContent(child.content)\n return newToken\n } else {\n const token = new Token('text', '', 0)\n token.content = child.content\n return token\n }\n })\n}\n\nfunction isInlineToken(t: Token) {\n return t.type === 'inline'\n}\n\nfunction isHtmlInlineToken(t: Token) {\n return t.type === 'html_inline'\n}\n\nfunction isHtmlBlockToken(t: Token) {\n return t.type === 'html_block'\n}\nfunction hasSplitInlineHtmlToken(t: Token) {\n let res = false\n\n t.children?.forEach((child) => {\n if (isHtmlInlineToken(child)) {\n const tag = getTagName(child.content)\n child.tag = tag\n if (needSplitInlineHtmlTokenTags.includes(child.tag)) {\n res = true\n }\n }\n })\n\n return res\n}\n\nconst rule: Core.RuleCore = (state: StateCore) => {\n const edited = false\n const tokens = state.tokens\n const tokensLength = tokens.length\n for (let i = tokensLength - 1; i >= 0; i--) {\n const curToken = tokens[i]\n\n if (isInlineToken(curToken)) {\n if (hasSplitInlineHtmlToken(curToken)) {\n tokens.splice(i, 1, ...splitHtmlInlineTokens(curToken))\n }\n } else if (isHtmlBlockToken(curToken)) {\n const tag = getTagName(curToken.content)\n\n if (isSingleNode(curToken.content) && needSplitInlineHtmlTokenTags.includes(tag)) {\n const newToken = new Token(typeMap[tag], '', 0)\n newToken.content = curToken.content\n newToken.attrs = getAttrsBySignalHtmlContent(curToken.content)\n tokens.splice(\n i,\n 1,\n ...[new Token('paragraph_open', '', 0), newToken, new Token('paragraph_close', '', 0)],\n )\n }\n }\n }\n\n return edited\n}\n\nfunction MarkdownItHtmlInline(md: MarkdownIt) {\n md.core.ruler.push('markdown-it-html-inline', rule)\n}\n\nexport default MarkdownItHtmlInline\n", "// @ts-nocheck\nimport HTML from 'html-parse-stringify'\n\nexport function isClosingTag(str: string) {\n const regex = /^<\\/[a-zA-Z0-9]+\\s*>$/\n return regex.test(str)\n}\n\nexport function isSingleNode (html: string) {\n const ast = HTML.parse(html)\n return ast && ast.length === 1\n}\n\nexport const getAttrsBySignalHtmlContent = (html: string) => {\n const ast = HTML.parse(html)\n return ast[0]?.attrs || {}\n}\n\nexport function getTagName(str: string) {\n const regex = /<\\/?([a-zA-Z0-9]+)\\b[^>]*>/\n\n const matches = regex.exec(str)\n\n if (matches && matches.length > 1) {\n return matches[1].toLowerCase()\n }\n\n return ''\n}\n\nexport function isImageElement(el: any): el is HTMLImageElement {\n return el && (el.tagName as string)?.toLocaleUpperCase() === 'IMG'\n}\n\ninterface HTMLAst {\n tag: string\n attrs: Record<string, string> | undefined\n voidElement: boolean\n}\n\nexport function buildHtmlStringFromAst(ast: HTMLAst) {\n let attrs = ''\n\n if (ast.attrs) {\n const filteredAttrs = Object.entries(ast.attrs).filter(([, value]) => value)\n\n if (filteredAttrs.length) {\n attrs = `${filteredAttrs.map(([key, value]) => `${key}=\"${value}\"`).join(' ')}`\n }\n }\n\n if (ast.voidElement) {\n return `<${ast.tag} ${attrs} />`\n }\n\n return `<${ast.tag} ${attrs}></${ast.tag}>`\n}\n", "var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\n\n// packages/remirror__extension-tables/src/table-extensions.ts\nimport {\n command,\n convertCommand,\n extension,\n ExtensionPriority,\n ExtensionTag as ExtensionTag2,\n findParentNodeOfType as findParentNodeOfType2,\n helper,\n isElementDomNode,\n keyBinding,\n NodeExtension,\n nonChainable\n} from \"@remirror/core\";\nimport { TextSelection } from \"@remirror/pm/state\";\nimport {\n addColumnAfter,\n addColumnBefore,\n addRowAfter,\n addRowBefore,\n CellSelection,\n columnIsHeader,\n columnResizing,\n deleteColumn,\n deleteRow,\n deleteTable,\n fixTables,\n fixTablesKey,\n goToNextCell,\n isCellSelection,\n mergeCells,\n rowIsHeader,\n setCellAttr,\n splitCell,\n tableEditing,\n TableMap,\n TableView,\n toggleHeader,\n toggleHeaderCell,\n toggleHeaderColumn,\n toggleHeaderRow,\n updateColumnsOnResize\n} from \"@remirror/pm/tables\";\n\n// packages/remirror__extension-tables/src/table-utils.ts\nimport {\n ErrorConstant,\n ExtensionTag,\n findParentNodeOfType,\n includes,\n invariant,\n object,\n values\n} from \"@remirror/core\";\nimport { ExtensionTablesMessages } from \"@remirror/messages\";\nfunction getCellAttrs(dom) {\n const widthAttr = dom.getAttribute(\"data-colwidth\");\n const widths = widthAttr && /^\\d+(,\\d+)*$/.test(widthAttr) ? widthAttr.split(\",\").map((s) => Number(s)) : null;\n const colspan = Number(dom.getAttribute(\"colspan\") ?? 1);\n const backgroundColor = dom.getAttribute(\"data-background-color\");\n return {\n colspan,\n rowspan: Number(dom.getAttribute(\"rowspan\") ?? 1),\n colwidth: widths && widths.length === colspan ? widths : null,\n background: backgroundColor || dom.style.backgroundColor || null\n };\n}\nfunction setCellAttrs(node) {\n const attrs = {};\n if (node.attrs.colspan !== 1) {\n attrs.colspan = node.attrs.colspan;\n }\n if (node.attrs.rowspan !== 1) {\n attrs.rowspan = node.attrs.rowspan;\n }\n if (node.attrs.colwidth) {\n attrs[\"data-colwidth\"] = node.attrs.colwidth.join(\",\");\n }\n if (node.attrs.background) {\n attrs.style = `${node.attrs.style ?? \"\"}background-color: ${node.attrs.background};`;\n attrs[\"data-background-color\"] = node.attrs.background;\n }\n return attrs;\n}\nfunction createTableNodeSchema(extra, override) {\n const cellAttrs = {\n ...extra.defaults(),\n colspan: { default: 1 },\n rowspan: { default: 1 },\n colwidth: { default: null },\n background: { default: null }\n };\n return {\n table: {\n isolating: true,\n ...override,\n attrs: extra.defaults(),\n content: \"tableRow+\",\n tableRole: \"table\",\n parseDOM: [{ tag: \"table\", getAttrs: extra.parse }, ...override.parseDOM ?? []],\n toDOM(node) {\n return [\"table\", extra.dom(node), [\"tbody\", 0]];\n }\n },\n tableRow: {\n ...override,\n attrs: extra.defaults(),\n content: \"(tableCell | tableHeaderCell)*\",\n tableRole: \"row\",\n parseDOM: [{ tag: \"tr\", getAttrs: extra.parse }, ...override.parseDOM ?? []],\n toDOM(node) {\n return [\"tr\", extra.dom(node), 0];\n }\n },\n tableCell: {\n isolating: true,\n content: `${ExtensionTag.Block}+`,\n ...override,\n attrs: cellAttrs,\n tableRole: \"cell\",\n parseDOM: [\n {\n tag: \"td\",\n getAttrs: (dom) => ({ ...extra.parse(dom), ...getCellAttrs(dom) })\n },\n ...override.parseDOM ?? []\n ],\n toDOM(node) {\n return [\"td\", { ...extra.dom(node), ...setCellAttrs(node) }, 0];\n }\n },\n tableHeaderCell: {\n isolating: true,\n content: `${ExtensionTag.Block}+`,\n ...override,\n attrs: cellAttrs,\n tableRole: \"header_cell\",\n parseDOM: [\n {\n tag: \"th\",\n getAttrs: (dom) => ({ ...extra.parse(dom), ...getCellAttrs(dom) })\n },\n ...override.parseDOM ?? []\n ],\n toDOM(node) {\n return [\"th\", { ...extra.dom(node), ...setCellAttrs(node) }, 0];\n }\n }\n };\n}\nvar TABLE_ROLES = [\"table\", \"row\", \"cell\", \"header_cell\"];\nfunction tableNodeTypes(schema) {\n if (schema.cached.tableNodeTypes) {\n return schema.cached.tableNodeTypes;\n }\n const roles = object();\n schema.cached.tableNodeTypes = roles;\n for (const nodeType of values(schema.nodes)) {\n if (includes(TABLE_ROLES, nodeType.spec.tableRole)) {\n roles[nodeType.spec.tableRole] = nodeType;\n }\n }\n return roles;\n}\nfunction createCell(props) {\n const { content, type } = props;\n if (content) {\n return type.createChecked(null, content);\n }\n return type.createAndFill();\n}\nfunction createTable(props) {\n const { schema, cellContent, columnsCount = 3, rowsCount = 3, withHeaderRow = true } = props;\n const {\n cell: tableCell,\n header_cell: tableHeaderCell,\n row: tableRow,\n table\n } = tableNodeTypes(schema);\n invariant(tableCell && tableHeaderCell && tableRow && table, {\n code: ErrorConstant.EXTENSION,\n message: \"Table Extension unable to locate required nodes.\"\n });\n const cells = [];\n const headerCells = [];\n for (let ii = 0; ii < columnsCount; ii++) {\n cells.push(createCell({ type: tableCell, content: cellContent }));\n if (withHeaderRow) {\n headerCells.push(\n createCell({ type: tableHeaderCell, content: cellContent })\n );\n }\n }\n const rows = [];\n for (let ii = 0; ii < rowsCount; ii++) {\n const rowNodes = withHeaderRow && ii === 0 ? headerCells : cells;\n rows.push(tableRow.createChecked(null, rowNodes));\n }\n return table.createChecked(null, rows);\n}\nfunction findTable(selection) {\n return findParentNodeOfType({ selection, types: \"table\" });\n}\nfunction findCellClosestToPos(selection) {\n return findParentNodeOfType({ selection, types: [\"tableHeaderCell\", \"tableCell\"] });\n}\nvar { CREATE_COMMAND_DESCRIPTION, CREATE_COMMAND_LABEL } = ExtensionTablesMessages;\nvar createTableOptions = {\n icon: \"table2\",\n description: ({ t }) => t(CREATE_COMMAND_DESCRIPTION),\n label: ({ t }) => t(CREATE_COMMAND_LABEL)\n};\n\n// packages/remirror__extension-tables/src/table-extensions.ts\nvar tablesEnabled = false;\nvar TableExtension = class extends NodeExtension {\n lastGoodState = void 0;\n get name() {\n return \"table\";\n }\n createTags() {\n return [ExtensionTag2.Block];\n }\n /**\n * The last known good state that didn't need fixing. This helps make the fix\n * command more effective.\n */\n createNodeSpec(extra, override) {\n return createTableNodeSchema(extra, override).table;\n }\n /**\n * Create the table extensions. Set the priority to low so that they appear\n * lower down in the node list.\n */\n createExtensions() {\n return [new TableRowExtension({ priority: ExtensionPriority.Low })];\n }\n onStateUpdate(props) {\n const { tr, state } = props;\n if (tr?.getMeta(fixTablesKey)?.fixTables) {\n this.lastGoodState = state;\n }\n }\n createEventHandlers() {\n return {\n editable: () => {\n this.store.updateExtensionPlugins(this);\n }\n };\n }\n /**\n * Add the table plugins to the editor.\n */\n createExternalPlugins() {\n const plugins = [];\n if (this.store.isMounted() && this.store.helpers.isViewEditable() === false) {\n return plugins;\n }\n const { resizable, resizeableOptions } = this.options;\n if (resizable) {\n plugins.push(columnResizing(resizeableOptions));\n }\n plugins.push(tableEditing());\n return plugins;\n }\n createPlugin() {\n const { resizable, resizeableOptions } = this.options;\n if (!resizable) {\n return {};\n }\n if (!this.store.isMounted() || this.store.helpers.isViewEditable()) {\n return {};\n }\n const { cellMinWidth = 25 } = resizeableOptions;\n return {\n props: {\n nodeViews: {\n table(node, view, getPos) {\n const dom = view.nodeDOM(getPos());\n if (isElementDomNode(dom) && dom.tagName === \"TABLE\") {\n updateColumnsOnResize(\n node,\n dom.firstChild,\n dom,\n cellMinWidth\n );\n }\n return new TableView(node, cellMinWidth);\n }\n }\n }\n };\n }\n createTable(options = {}) {\n return (props) => {\n const { tr, dispatch, state } = props;\n if (!tr.selection.empty) {\n return false;\n }\n const offset = tr.selection.anchor + 1;\n const nodes = createTable({ schema: state.schema, ...options });\n dispatch?.(\n tr.replaceSelectionWith(nodes).scrollIntoView().setSelection(TextSelection.near(tr.doc.resolve(offset)))\n );\n return true;\n };\n }\n deleteTable() {\n return convertCommand(deleteTable);\n }\n addTableColumnBefore() {\n return convertCommand(addColumnBefore);\n }\n addTableColumnAfter() {\n return convertCommand(addColumnAfter);\n }\n deleteTableColumn() {\n return convertCommand(deleteColumn);\n }\n addTableRowBefore() {\n return convertCommand(addRowBefore);\n }\n addTableRowAfter() {\n return convertCommand(addRowAfter);\n }\n deleteTableRow() {\n return convertCommand(deleteRow);\n }\n toggleTableCellMerge() {\n return toggleMergeCellCommand;\n }\n mergeTableCells() {\n return convertCommand(mergeCells);\n }\n splitTableCell() {\n return convertCommand(splitCell);\n }\n toggleTableHeader(type = \"row\") {\n return convertCommand(toggleHeader(type));\n }\n toggleTableHeaderColumn() {\n return convertCommand(toggleHeaderColumn);\n }\n toggleTableHeaderRow() {\n return convertCommand(toggleHeaderRow);\n }\n toggleTableHeaderCell() {\n return convertCommand(toggleHeaderCell);\n }\n setTableCellAttribute(name, value) {\n return convertCommand(setCellAttr(name, value));\n }\n fixTables() {\n return nonChainable(fixTablesCommand(this.lastGoodState));\n }\n enableTableSupport() {\n if (!tablesEnabled) {\n document.execCommand(\"enableObjectResizing\", false, \"false\");\n document.execCommand(\"enableInlineTableEditing\", false, \"false\");\n tablesEnabled = true;\n }\n }\n tableHasHeader(type = \"row\", state = this.store.getState()) {\n const { selection } = state;\n const table = findParentNodeOfType2({ selection, types: \"table\" });\n if (!table) {\n return false;\n }\n const { node } = table;\n const map = TableMap.get(node);\n const isHeaderFunc = type === \"column\" ? columnIsHeader : rowIsHeader;\n return isHeaderFunc(map, node, 0);\n }\n setTableCellBackground(background) {\n return (props) => {\n let { tr } = props;\n const { dispatch } = props;\n const { selection } = tr;\n if (selection instanceof CellSelection) {\n selection.forEachCell((cellNode, pos) => {\n tr = tr.setNodeMarkup(pos, void 0, { ...cellNode.attrs, background });\n });\n dispatch?.(tr);\n return true;\n }\n const found = findParentNodeOfType2({ selection, types: [\"tableCell\", \"tableHeaderCell\"] });\n if (found) {\n dispatch?.(tr.setNodeMarkup(found.pos, void 0, { ...found.node.attrs, background }));\n return true;\n }\n return false;\n };\n }\n selectParentCell() {\n return ({ dispatch, tr }) => {\n const cell = findCellClosestToPos(tr.selection.$from);\n if (!cell) {\n return false;\n }\n dispatch?.(tr.setSelection(CellSelection.create(tr.doc, cell.pos)));\n return true;\n };\n }\n expandCellSelection(type = \"all\") {\n return ({ dispatch, tr }) => {\n if (!isCellSelection(tr.selection)) {\n return false;\n }\n if (type !== \"row\") {\n const { $anchorCell, $headCell } = tr.selection;\n tr.setSelection(CellSelection.colSelection($anchorCell, $headCell));\n }\n if (type !== \"column\") {\n const { $anchorCell, $headCell } = tr.selection;\n tr.setSelection(CellSelection.rowSelection($anchorCell, $headCell));\n }\n dispatch?.(tr);\n return true;\n };\n }\n goToNextCell(props) {\n return convertCommand(goToNextCell(1))(props);\n }\n goToPreviousCell(props) {\n return convertCommand(goToNextCell(-1))(props);\n }\n /**\n * This managers the updates of the collaboration provider.\n */\n onSetOptions(props) {\n const { changes } = props;\n if (changes.resizable.changed) {\n this.store.updateExtensionPlugins(this);\n }\n }\n};\n__decorateClass([\n command(createTableOptions)\n], TableExtension.prototype, \"createTable\", 1);\n__decorateClass([\n command()\n], TableExtension.prototype, \"deleteTable\", 1);\n__decorateClass([\n command()\n], TableExtension.prototype, \"addTableColumnBefore\", 1);\n__decorateClass([\n command()\n], TableExtension.prototype, \"addTableColumnAfter\", 1);\n__decorateClass([\n command()\n], TableExtension.prototype, \"deleteTableColumn\", 1);\n__decorateClass([\n command()\n], TableExtension.prototype, \"addTableRowBefore\", 1);\n__decorateClass([\n command()\n], TableExtension.prototype, \"addTableRowAfter\", 1);\n__decorateClass([\n command()\n], TableExtension.prototype, \"deleteTableRow\", 1);\n__decorateClass([\n command()\n], TableExtension.prototype, \"toggleTableCellMerge\", 1);\n__decorateClass([\n command()\n], TableExtension.prototype, \"mergeTableCells\", 1);\n__decorateClass([\n command()\n], TableExtension.prototype, \"splitTableCell\", 1);\n__decorateClass([\n command()\n], TableExtension.prototype, \"toggleTableHeader\", 1);\n__decorateClass([\n command()\n], TableExtension.prototype, \"toggleTableHeaderColumn\", 1);\n__decorateClass([\n command()\n], TableExtension.prototype, \"toggleTableHeaderRow\", 1);\n__decorateClass([\n command()\n], TableExtension.prototype, \"toggleTableHeaderCell\", 1);\n__decorateClass([\n command()\n], TableExtension.prototype, \"setTableCellAttribute\", 1);\n__decorateClass([\n command({ disableChaining: true })\n], TableExtension.prototype, \"fixTables\", 1);\n__decorateClass([\n helper()\n], TableExtension.prototype, \"enableTableSupport\", 1);\n__decorateClass([\n helper()\n], TableExtension.prototype, \"tableHasHeader\", 1);\n__decorateClass([\n command()\n], TableExtension.prototype, \"setTableCellBackground\", 1);\n__decorateClass([\n command()\n], TableExtension.prototype, \"selectParentCell\", 1);\n__decorateClass([\n command()\n], TableExtension.prototype, \"expandCellSelection\", 1);\n__decorateClass([\n keyBinding({\n shortcut: \"Tab\",\n isActive: (options) => options.tabKeyboardShortcuts\n })\n], TableExtension.prototype, \"goToNextCell\", 1);\n__decorateClass([\n keyBinding({\n shortcut: \"Shift-Tab\",\n isActive: (options) => options.tabKeyboardShortcuts\n })\n], TableExtension.prototype, \"goToPreviousCell\", 1);\nTableExtension = __decorateClass([\n extension({\n defaultOptions: {\n resizable: true,\n resizeableOptions: {},\n tabKeyboardShortcuts: false\n },\n defaultPriority: ExtensionPriority.Default\n })\n], TableExtension);\nvar TableRowExtension = class extends NodeExtension {\n get name() {\n return \"tableRow\";\n }\n /**\n * Automatically create the `TableCellExtension` and\n * `TableHeaderCellExtension`. This is placed here so that this extension can\n * be tested independently from the `TableExtension`.\n */\n createExtensions() {\n return [\n new TableCellExtension({ priority: ExtensionPriority.Low }),\n new TableHeaderCellExtension({ priority: ExtensionPriority.Low })\n ];\n }\n createNodeSpec(extra, override) {\n return createTableNodeSchema(extra, override).tableRow;\n }\n};\nTableRowExtension = __decorateClass([\n extension({ defaultPriority: ExtensionPriority.Low })\n], TableRowExtension);\nvar TableCellExtension = class extends NodeExtension {\n get name() {\n return \"tableCell\";\n }\n createNodeSpec(extra, override) {\n return createTableNodeSchema(extra, override).tableCell;\n }\n};\nTableCellExtension = __decorateClass([\n extension({ defaultPriority: ExtensionPriority.Low })\n], TableCellExtension);\nvar TableHeaderCellExtension = class extends NodeExtension {\n get name() {\n return \"tableHeaderCell\";\n }\n createNodeSpec(extra, override) {\n return createTableNodeSchema(extra, override).tableHeaderCell;\n }\n};\nTableHeaderCellExtension = __decorateClass([\n extension({ defaultPriority: ExtensionPriority.Low })\n], TableHeaderCellExtension);\nvar TableControllerCellExtension = class extends NodeExtension {\n get name() {\n return \"tableControllerCell\";\n }\n createNodeSpec(_, __) {\n return {\n tableRole: \"header_cell\"\n };\n }\n};\nTableControllerCellExtension = __decorateClass([\n extension({ defaultPriority: ExtensionPriority.Low })\n], TableControllerCellExtension);\nfunction fixTablesCommand(lastGoodState) {\n return ({ state, dispatch }) => {\n const tr = fixTables(state, lastGoodState);\n if (!tr) {\n return false;\n }\n if (dispatch) {\n dispatch(tr);\n }\n return true;\n };\n}\nfunction toggleMergeCellCommand({ state, dispatch }) {\n if (mergeCells(state, dispatch)) {\n return false;\n }\n return splitCell(state, dispatch);\n}\n\n// packages/remirror__extension-tables/src/table-positioners.ts\nimport {\n isElementDomNode as isElementDomNode2,\n mergeDOMRects\n} from \"@remirror/core\";\nimport {\n defaultAbsolutePosition,\n hasStateChanged,\n isPositionVisible,\n Positioner\n} from \"@remirror/extension-positioner\";\nimport { isCellSelection as isCellSelection2, TableMap as TableMap2 } from \"@remirror/pm/tables\";\nfunction getCellsInColumn(selection, columnIndex) {\n const table = findTable(selection);\n if (!table) {\n return;\n }\n const map = TableMap2.get(table.node);\n if (columnIndex > 0 || columnIndex > map.width - 1) {\n return;\n }\n const cells = map.cellsInRect({\n left: columnIndex,\n right: columnIndex + 1,\n top: 0,\n bottom: map.height\n });\n const columnNodes = [];\n cells.forEach((nodePos) => {\n columnNodes.push({\n node: table.node.nodeAt(nodePos),\n pos: table.start + nodePos\n });\n });\n return columnNodes;\n}\nfunction getCellsInRow(selection, rowIndex) {\n const table = findTable(selection);\n if (!table) {\n return;\n }\n const map = TableMap2.get(table.node);\n if (rowIndex > 0 || rowIndex > map.width - 1) {\n return;\n }\n const cells = map.cellsInRect({\n left: 0,\n right: map.width,\n top: rowIndex,\n bottom: rowIndex + 1\n });\n const columnNodes = [];\n cells.forEach((nodePos) => {\n columnNodes.push({\n node: table.node.nodeAt(nodePos),\n pos: table.start + nodePos\n });\n });\n return columnNodes;\n}\nvar tablePositioner = Positioner.create({\n hasChanged: hasStateChanged,\n getActive(props) {\n const { selection } = props.state;\n const table = findTable(selection);\n if (!table) {\n return Positioner.EMPTY;\n }\n return [table];\n },\n getPosition(props) {\n const { view, data: table } = props;\n const node = view.nodeDOM(table.pos);\n if (!isElementDomNode2(node)) {\n return defaultAbsolutePosition;\n }\n const rect = node.getBoundingClientRect();\n const editorRect = view.dom.getBoundingClientRect();\n const height = rect.height;\n const width = rect.width;\n const left = view.dom.scrollLeft + rect.left - editorRect.left - 1;\n const top = view.dom.scrollTop + rect.top - editorRect.top - 1;\n return {\n x: left,\n y: top,\n height,\n width,\n rect,\n visible: isPositionVisible(rect, view.dom)\n };\n }\n});\nvar activeCellPositioner = tablePositioner.clone(() => ({\n getActive(props) {\n const { selection } = props.state;\n const cell = findCellClosestToPos(selection);\n if (!cell) {\n return Positioner.EMPTY;\n }\n return [cell];\n }\n}));\nvar allColumnsStartPositioner = Positioner.create({\n hasChanged: hasStateChanged,\n getActive(props) {\n const { selection } = props.state;\n const table = findTable(selection);\n if (!table) {\n return Positioner.EMPTY;\n }\n const cells = getCellsInRow(selection, 0) ?? [];\n if (cells.length === 0) {\n return Positioner.EMPTY;\n }\n return cells;\n },\n getID(data) {\n return `${data.pos}`;\n },\n getPosition(props) {\n const { view, data: cell } = props;\n const node = view.nodeDOM(cell.pos);\n if (!isElementDomNode2(node)) {\n return defaultAbsolutePosition;\n }\n const rect = node.getBoundingClientRect();\n const editorRect = view.dom.getBoundingClientRect();\n const width = rect.width;\n const left = view.dom.scrollLeft + rect.left - editorRect.left - 1;\n const top = view.dom.scrollTop + rect.top - editorRect.top - 1;\n const columnTopRect = new DOMRect(rect.x - 1, rect.y - 1, width, 1);\n return {\n x: left,\n y: top,\n width,\n height: 1,\n rect: columnTopRect,\n visible: isPositionVisible(columnTopRect, view.dom)\n };\n }\n});\nvar allRowsStartPositioner = allColumnsStartPositioner.clone(() => ({\n /**\n * This is only active for empty top level nodes. The data is the cursor start\n * and end position.\n */\n getActive(props) {\n const { selection } = props.state;\n const table = findTable(selection);\n if (!table) {\n return Positioner.EMPTY;\n }\n const cells = getCellsInColumn(selection, 0) ?? [];\n if (cells.length === 0) {\n return Positioner.EMPTY;\n }\n return cells;\n },\n getPosition(props) {\n const { view, data: cell } = props;\n const node = view.nodeDOM(cell.pos);\n if (!isElementDomNode2(node)) {\n return defaultAbsolutePosition;\n }\n const rect = node.getBoundingClientRect();\n const editorRect = view.dom.getBoundingClientRect();\n const height = rect.height;\n const left = view.dom.scrollLeft + rect.left - editorRect.left - 1;\n const top = view.dom.scrollTop + rect.top - editorRect.top - 1;\n const rowLeftRect = new DOMRect(rect.x - 1, rect.y - 1, 1, height);\n return {\n x: left,\n y: top,\n width: 1,\n height,\n rect: rowLeftRect,\n visible: isPositionVisible(rowLeftRect, view.dom)\n };\n }\n}));\nvar activeCellColumnPositioner = Positioner.create({\n hasChanged: hasStateChanged,\n getActive(props) {\n const { state, view } = props;\n const { selection } = state;\n const table = findTable(selection);\n if (!table) {\n return Positioner.EMPTY;\n }\n const cell = findCellClosestToPos(selection);\n if (!cell) {\n return Positioner.EMPTY;\n }\n const { pos } = cell;\n const tableNode = view.nodeDOM(table.pos);\n const node = view.nodeDOM(pos);\n if (!isElementDomNode2(tableNode) || !isElementDomNode2(node)) {\n return Positioner.EMPTY;\n }\n const tableRect = tableNode.getBoundingClientRect();\n const rect = node.getBoundingClientRect();\n return [\n {\n pos,\n rect: new DOMRect(rect.x, tableRect.y, rect.width, tableRect.height)\n }\n ];\n },\n getID({ pos }) {\n return `${pos}`;\n },\n getPosition(props) {\n const {\n view,\n data: { rect }\n } = props;\n const editorRect = view.dom.getBoundingClientRect();\n const height = rect.height;\n const width = rect.width;\n const left = view.dom.scrollLeft + rect.left - editorRect.left - 1;\n const top = view.dom.scrollTop + rect.top - editorRect.top - 1;\n return {\n x: left,\n y: top,\n width,\n height,\n rect,\n visible: isPositionVisible(rect, view.dom)\n };\n }\n});\nvar activeCellRowPositioner = activeCellColumnPositioner.clone(() => ({\n getActive(props) {\n const { state, view } = props;\n const { selection } = state;\n const table = findTable(selection);\n if (!table) {\n return Positioner.EMPTY;\n }\n const cell = findCellClosestToPos(selection);\n if (!cell) {\n return Positioner.EMPTY;\n }\n const { pos } = cell;\n const tableNode = view.nodeDOM(table.pos);\n const node = view.nodeDOM(pos);\n if (!isElementDomNode2(tableNode) || !isElementDomNode2(node)) {\n return Positioner.EMPTY;\n }\n const tableRect = tableNode.getBoundingClientRect();\n const rect = node.getBoundingClientRect();\n return [\n {\n pos,\n rect: new DOMRect(tableRect.x, rect.y, tableRect.width, rect.height)\n }\n ];\n }\n}));\nvar selectedColumnPositioner = activeCellColumnPositioner.clone(({ getActive }) => ({\n getActive(props) {\n const [data] = getActive(props);\n if (!data) {\n return Positioner.EMPTY;\n }\n const { selection } = props.state;\n if (!isCellSelection2(selection) || !selection.isColSelection()) {\n return Positioner.EMPTY;\n }\n const table = findTable(selection);\n if (!table) {\n return Positioner.EMPTY;\n }\n const { node, start } = table;\n const { $anchorCell, $headCell } = selection;\n const map = TableMap2.get(node);\n const rect = map.rectBetween($anchorCell.pos - start, $headCell.pos - start);\n if (rect.right - rect.left !== 1) {\n return Positioner.EMPTY;\n }\n return [data];\n }\n}));\nvar selectedRowPositioner = activeCellRowPositioner.clone(({ getActive }) => ({\n getActive(props) {\n const [data] = getActive(props);\n if (!data) {\n return Positioner.EMPTY;\n }\n const { selection } = props.state;\n if (!isCellSelection2(selection) || !selection.isRowSelection()) {\n return Positioner.EMPTY;\n }\n const table = findTable(selection);\n if (!table) {\n return Positioner.EMPTY;\n }\n const { node, start } = table;\n const { $anchorCell, $headCell } = selection;\n const map = TableMap2.get(node);\n const rect = map.rectBetween($anchorCell.pos - start, $headCell.pos - start);\n if (rect.bottom - rect.top !== 1) {\n return Positioner.EMPTY;\n }\n return [data];\n }\n}));\nvar cellSelectionPositioner = Positioner.create({\n hasChanged: hasStateChanged,\n getActive(props) {\n const { selection } = props.state;\n if (!isCellSelection2(selection)) {\n return Positioner.EMPTY;\n }\n return [selection];\n },\n getPosition(props) {\n const { view, data: selection } = props;\n const { $headCell, $anchorCell } = selection;\n const headNode = view.nodeDOM($headCell.pos);\n const anchorNode = view.nodeDOM($anchorCell.pos);\n if (!isElementDomNode2(headNode) || !isElementDomNode2(anchorNode)) {\n return defaultAbsolutePosition;\n }\n const rect = mergeDOMRects(\n headNode.getBoundingClientRect(),\n anchorNode.getBoundingClientRect()\n );\n const editorRect = view.dom.getBoundingClientRect();\n const height = rect.height;\n const width = rect.width;\n const left = view.dom.scrollLeft + rect.left - editorRect.left - 1;\n const top = view.dom.scrollTop + rect.top - editorRect.top - 1;\n return {\n x: left,\n y: top,\n width,\n height,\n rect,\n visible: isPositionVisible(rect, view.dom)\n };\n }\n});\nvar cellColumnSelectionPositioner = cellSelectionPositioner.clone(({ getActive }) => ({\n getActive(props) {\n const [selection] = getActive(props);\n if (!selection?.isColSelection()) {\n return Positioner.EMPTY;\n }\n return [selection];\n }\n}));\nvar cellRowSelectionPositioner = cellSelectionPositioner.clone(({ getActive }) => ({\n getActive(props) {\n const [selection] = getActive(props);\n if (!selection?.isRowSelection()) {\n return Positioner.EMPTY;\n }\n return [selection];\n }\n}));\nvar allCellSelectionPositioner = cellSelectionPositioner.clone(({ getActive }) => ({\n getActive(props) {\n const [selection] = getActive(props);\n if (!selection?.isColSelection() || !selection.isRowSelection()) {\n return Positioner.EMPTY;\n }\n return [selection];\n }\n}));\nexport {\n TableCellExtension,\n TableControllerCellExtension,\n TableExtension,\n TableHeaderCellExtension,\n TableRowExtension,\n activeCellColumnPositioner,\n activeCellPositioner,\n activeCellRowPositioner,\n allCellSelectionPositioner,\n allColumnsStartPositioner,\n allRowsStartPositioner,\n cellColumnSelectionPositioner,\n cellRowSelectionPositioner,\n cellSelectionPositioner,\n createTable,\n createTableOptions,\n selectedColumnPositioner,\n selectedRowPositioner,\n tablePositioner\n};\n", "const COPY_LABEL =\n/*i18n*/\n{\n id: 'extension.command.copy.label',\n message: 'Copy',\n comment: 'Label for copy command.'\n};\nconst COPY_DESCRIPTION =\n/*i18n*/\n{\n id: 'extension.command.copy.description',\n message: 'Copy the selected text',\n comment: 'Description for copy command.'\n};\nconst CUT_LABEL =\n/*i18n*/\n{\n id: 'extension.command.cut.label',\n message: 'Cut',\n comment: 'Label for cut command.'\n};\nconst CUT_DESCRIPTION =\n/*i18n*/\n{\n id: 'extension.command.cut.description',\n message: 'Cut the selected text',\n comment: 'Description for cut command.'\n};\nconst PASTE_LABEL =\n/*i18n*/\n{\n id: 'extension.command.paste.label',\n message: 'Paste',\n comment: 'Label for paste command.'\n};\nconst PASTE_DESCRIPTION =\n/*i18n*/\n{\n id: 'extension.command.paste.description',\n message: 'Paste content into the editor',\n comment: 'Description for paste command.'\n};\nconst SELECT_ALL_LABEL =\n/*i18n*/\n{\n id: 'extension.command.select-all.label',\n message: 'Select all',\n comment: 'Label for select all command.'\n};\nconst SELECT_ALL_DESCRIPTION =\n/*i18n*/\n{\n id: 'extension.command.select-all.description',\n message: 'Select all content within the editor',\n comment: 'Description for select all command.'\n};\n\nvar coreMessages = /*#__PURE__*/Object.freeze({\n __proto__: null,\n COPY_DESCRIPTION: COPY_DESCRIPTION,\n COPY_LABEL: COPY_LABEL,\n CUT_DESCRIPTION: CUT_DESCRIPTION,\n CUT_LABEL: CUT_LABEL,\n PASTE_DESCRIPTION: PASTE_DESCRIPTION,\n PASTE_LABEL: PASTE_LABEL,\n SELECT_ALL_DESCRIPTION: SELECT_ALL_DESCRIPTION,\n SELECT_ALL_LABEL: SELECT_ALL_LABEL\n});\n\nconst ESCAPE_KEY =\n/*i18n*/\n{\n id: 'keyboard.shortcut.escape',\n message: 'Enter',\n comment: 'Label for escape key in shortcuts.'\n};\nconst COMMAND_KEY =\n/*i18n*/\n{\n id: 'keyboard.shortcut.command',\n message: 'Command',\n comment: 'Label for command key in shortcuts.'\n};\nconst CONTROL_KEY =\n/*i18n*/\n{\n id: 'keyboard.shortcut.control',\n message: 'Control',\n comment: 'Label for control key in shortcuts.'\n};\nconst ENTER_KEY =\n/*i18n*/\n{\n id: 'keyboard.shortcut.enter',\n message: 'Enter',\n comment: 'Label for enter key in shortcuts.'\n};\nconst SHIFT_KEY =\n/*i18n*/\n{\n id: 'keyboard.shortcut.shift',\n message: 'Shift',\n comment: 'Label for shift key in shortcuts.'\n};\nconst ALT_KEY =\n/*i18n*/\n{\n id: 'keyboard.shortcut.alt',\n message: 'Alt',\n comment: 'Label for alt key in shortcuts.'\n};\nconst CAPS_LOCK_KEY =\n/*i18n*/\n{\n id: 'keyboard.shortcut.capsLock',\n message: 'Caps Lock',\n comment: 'Label for caps lock key in shortcuts.'\n};\nconst BACKSPACE_KEY =\n/*i18n*/\n{\n id: 'keyboard.shortcut.backspace',\n message: 'Backspace',\n comment: 'Label for backspace key in shortcuts.'\n};\nconst TAB_KEY =\n/*i18n*/\n{\n id: 'keyboard.shortcut.tab',\n message: 'Tab',\n comment: 'Label for tab key in shortcuts.'\n};\nconst SPACE_KEY =\n/*i18n*/\n{\n id: 'keyboard.shortcut.space',\n message: 'Space',\n comment: 'Label for space key in shortcuts.'\n};\nconst DELETE_KEY =\n/*i18n*/\n{\n id: 'keyboard.shortcut.delete',\n message: 'Delete',\n comment: 'Label for delete key in shortcuts.'\n};\nconst PAGE_UP_KEY =\n/*i18n*/\n{\n id: 'keyboard.shortcut.pageUp',\n message: 'Page Up',\n comment: 'Label for page up key in shortcuts.'\n};\nconst PAGE_DOWN_KEY =\n/*i18n*/\n{\n id: 'keyboard.shortcut.pageDown',\n message: 'Page Down',\n comment: 'Label for page down key in shortcuts.'\n};\nconst HOME_KEY =\n/*i18n*/\n{\n id: 'keyboard.shortcut.home',\n message: 'Home',\n comment: 'Label for home key in shortcuts.'\n};\nconst END_KEY =\n/*i18n*/\n{\n id: 'keyboard.shortcut.end',\n message: 'End',\n comment: 'Label for end key in shortcuts.'\n};\nconst ARROW_LEFT_KEY =\n/*i18n*/\n{\n id: 'keyboard.shortcut.arrowLeft',\n message: 'Arrow Left',\n comment: 'Label for arrow left key in shortcuts.'\n};\nconst ARROW_RIGHT_KEY =\n/*i18n*/\n{\n id: 'keyboard.shortcut.arrowRight',\n message: 'Arrow Right',\n comment: 'Label for arrow right key in shortcuts.'\n};\nconst ARROW_UP_KEY =\n/*i18n*/\n{\n id: 'keyboard.shortcut.arrowUp',\n message: 'Arrow Up',\n comment: 'Label for arrow up key in shortcuts.'\n};\nconst ARROW_DOWN_KEY =\n/*i18n*/\n{\n id: 'keyboard.shortcut.arrowDown',\n message: 'Arrow Down',\n comment: 'Label for arrowDown key in shortcuts.'\n};\n\nvar coreUtilsMessages = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ALT_KEY: ALT_KEY,\n ARROW_DOWN_KEY: ARROW_DOWN_KEY,\n ARROW_LEFT_KEY: ARROW_LEFT_KEY,\n ARROW_RIGHT_KEY: ARROW_RIGHT_KEY,\n ARROW_UP_KEY: ARROW_UP_KEY,\n BACKSPACE_KEY: BACKSPACE_KEY,\n CAPS_LOCK_KEY: CAPS_LOCK_KEY,\n COMMAND_KEY: COMMAND_KEY,\n CONTROL_KEY: CONTROL_KEY,\n DELETE_KEY: DELETE_KEY,\n END_KEY: END_KEY,\n ENTER_KEY: ENTER_KEY,\n ESCAPE_KEY: ESCAPE_KEY,\n HOME_KEY: HOME_KEY,\n PAGE_DOWN_KEY: PAGE_DOWN_KEY,\n PAGE_UP_KEY: PAGE_UP_KEY,\n SHIFT_KEY: SHIFT_KEY,\n SPACE_KEY: SPACE_KEY,\n TAB_KEY: TAB_KEY\n});\n\nconst ADD_ANNOTATION =\n/*i18n*/\n{\n id: 'extension.command.add-annotation.label',\n message: 'Add annotation',\n comment: 'Label for adding an annotation.'\n};\nconst UPDATE_ANNOTATION =\n/*i18n*/\n{\n id: 'extension.command.update-annotation.label',\n message: 'Update annotation',\n comment: 'Label for updating an annotation.'\n};\nconst REMOVE_ANNOTATION =\n/*i18n*/\n{\n id: 'extension.command.remove-annotation.label',\n message: 'Remove annotation',\n comment: 'Label for removing an annotation.'\n};\n\nvar extensionAnnotationMessages = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ADD_ANNOTATION: ADD_ANNOTATION,\n REMOVE_ANNOTATION: REMOVE_ANNOTATION,\n UPDATE_ANNOTATION: UPDATE_ANNOTATION\n});\n\nconst LABEL$f =\n/*i18n*/\n{\n id: 'extension.command.set-text-direction.label',\n message: \"{dir, select, ltr {Left-To-Right}\\nrtl {Right-To-Left}\\nother {Reset Direction}}\",\n comment: 'Label for setting the text direction.'\n};\nconst DESCRIPTION$c =\n/*i18n*/\n{\n id: 'extension.command.set-text-direction.description',\n message: \"{dir, select, ltr {Set the text direction from left to right}\\nrtl {Set the text direction from right to left}\\nother {Reset text direction}}\",\n comment: 'Description for setting the text direction.'\n};\n\nvar extensionBidiMessages = /*#__PURE__*/Object.freeze({\n __proto__: null,\n DESCRIPTION: DESCRIPTION$c,\n LABEL: LABEL$f\n});\n\nconst LABEL$e =\n/*i18n*/\n{\n id: 'extension.command.toggle-blockquote.label',\n message: 'Blockquote',\n comment: 'Label for blockquote formatting command.'\n};\nconst DESCRIPTION$b =\n/*i18n*/\n{\n id: 'extension.command.toggle-blockquote.description',\n message: 'Add blockquote formatting to the selected text',\n comment: 'Description for blockquote formatting command.'\n};\n\nvar extensionBlockquoteMessages = /*#__PURE__*/Object.freeze({\n __proto__: null,\n DESCRIPTION: DESCRIPTION$b,\n LABEL: LABEL$e\n});\n\nconst LABEL$d =\n/*i18n*/\n{\n id: 'extension.command.toggle-bold.label',\n message: 'Bold',\n comment: 'Label for bold formatting command.'\n};\nconst DESCRIPTION$a =\n/*i18n*/\n{\n id: 'extension.command.toggle-bold.description',\n message: 'Add bold formatting to the selected text',\n comment: 'Description for bold formatting command.'\n};\n\nvar extensionBoldMessages = /*#__PURE__*/Object.freeze({\n __proto__: null,\n DESCRIPTION: DESCRIPTION$a,\n LABEL: LABEL$d\n});\n\nconst LABEL$c =\n/*i18n*/\n{\n id: 'extension.command.toggle-callout.label',\n message: \"{type, select, info {Information Callout}\\nwarning {Warning Callout}\\nerror {Error Callout}\\nsuccess {Success Callout}\\nother {Callout}}\",\n comment: 'Label for callout command with support for callout types.'\n};\nconst DESCRIPTION$9 =\n/*i18n*/\n{\n id: 'extension.command.toggle-callout.description',\n message: \"{type, select, info {Create an information callout block}\\nwarning {Create a warning callout block}\\nerror {Create an error callout block}\\nsuccess {Create a success callout block}\\nother {Create a callout block}}\",\n comment: 'Description of the callout command with support for callout types.'\n};\n\nvar extensionCalloutMessages = /*#__PURE__*/Object.freeze({\n __proto__: null,\n DESCRIPTION: DESCRIPTION$9,\n LABEL: LABEL$c\n});\n\nconst LABEL$b =\n/*i18n*/\n{\n id: 'extension.command.toggle-code-block.label',\n message: 'Codeblock',\n comment: 'Label for the code block command.'\n};\nconst DESCRIPTION$8 =\n/*i18n*/\n{\n id: 'extension.command.toggle-code-block.description',\n message: 'Add a code block',\n comment: 'Description for the code block command.'\n};\n\nvar extensionCodeBlockMessages = /*#__PURE__*/Object.freeze({\n __proto__: null,\n DESCRIPTION: DESCRIPTION$8,\n LABEL: LABEL$b\n});\n\nconst LABEL$a =\n/*i18n*/\n{\n id: 'extension.command.toggle-code.label',\n message: 'Code',\n comment: 'Label for the inline code formatting.'\n};\nconst DESCRIPTION$7 =\n/*i18n*/\n{\n id: 'extension.command.toggle-code.description',\n message: 'Add inline code formatting to the selected text',\n comment: 'Description for the inline code formatting command.'\n};\n\nvar extensionCodeMessages = /*#__PURE__*/Object.freeze({\n __proto__: null,\n DESCRIPTION: DESCRIPTION$7,\n LABEL: LABEL$a\n});\n\nconst LABEL$9 =\n/*i18n*/\n{\n id: 'extension.command.toggle-columns.label',\n message: \"{count, select, 2 {Two Column Block}\\n3 {Three Column Block}\\n4 {Four Column Block}\\nother {Multi Column Block}}\",\n comment: 'Label for columns command with support for number of columns counts.'\n};\nconst DESCRIPTION$6 =\n/*i18n*/\n{\n id: 'extension.command.toggle-columns.description',\n message: \"{count, select, 2 {Split the block into two columns}\\n3 {Split the current block into three columns}\\n4 {Split the current block into four columns}\\nother {Split the current block into multiple columns}}\",\n comment: 'Description of the columns command with support for number of columns counts.'\n};\n\nvar extensionColumnsMessages = /*#__PURE__*/Object.freeze({\n __proto__: null,\n DESCRIPTION: DESCRIPTION$6,\n LABEL: LABEL$9\n});\n\nconst INSERT_EMOJI_LABEL =\n/*i18n*/\n{\n id: 'extension.command.insert-emoji.label',\n message: 'Insert Emoji',\n comment: 'Label for inserting an emoji.'\n};\n\nvar extensionEmojiMessages = /*#__PURE__*/Object.freeze({\n __proto__: null,\n INSERT_EMOJI_LABEL: INSERT_EMOJI_LABEL\n});\n\nconst SET_LABEL$1 =\n/*i18n*/\n{\n id: 'extension.command.set-font-size.label',\n message: 'Font size',\n comment: 'Label for adding a font size.'\n};\nconst SET_DESCRIPTION =\n/*i18n*/\n{\n id: 'extension.command.set-font-size.description',\n message: 'Set the font size for the selected text.',\n comment: 'Description for adding a font size.'\n};\nconst INCREASE_LABEL =\n/*i18n*/\n{\n id: 'extension.command.increase-font-size.label',\n message: 'Increase',\n comment: 'Label for increasing the font size.'\n};\nconst INCREASE_DESCRIPTION =\n/*i18n*/\n{\n id: 'extension.command.increase-font-size.description',\n message: 'Increase the font size',\n comment: 'Description for increasing the font size.'\n};\nconst DECREASE_LABEL =\n/*i18n*/\n{\n id: 'extension.command.decrease-font-size.label',\n message: 'Decrease',\n comment: 'Label for decreasing the font size.'\n};\nconst DECREASE_DESCRIPTION =\n/*i18n*/\n{\n id: 'extension.command.decrease-font-size.description',\n message: 'Decrease the font size.',\n comment: 'Description for decreasing the font size.'\n};\n\nvar extensionFontSizeMessages = /*#__PURE__*/Object.freeze({\n __proto__: null,\n DECREASE_DESCRIPTION: DECREASE_DESCRIPTION,\n DECREASE_LABEL: DECREASE_LABEL,\n INCREASE_DESCRIPTION: INCREASE_DESCRIPTION,\n INCREASE_LABEL: INCREASE_LABEL,\n SET_DESCRIPTION: SET_DESCRIPTION,\n SET_LABEL: SET_LABEL$1\n});\n\nconst LABEL$8 =\n/*i18n*/\n{\n id: 'extension.command.toggle-heading.label',\n message: \"{level, select, 1 {Heading 1}\\n2 {Heading 2}\\n3 {Heading 3}\\n4 {Heading 4}\\n5 {Heading 5}\\n6 {Heading 6}\\nother {Heading}}\",\n comment: 'Label for heading command with support for levels.'\n};\n\nvar extensionHeadingMessages = /*#__PURE__*/Object.freeze({\n __proto__: null,\n LABEL: LABEL$8\n});\n\nconst UNDO_LABEL =\n/*i18n*/\n{\n id: 'extension.command.undo.label',\n message: 'Undo',\n comment: 'Label for undo.'\n};\nconst UNDO_DESCRIPTION =\n/*i18n*/\n{\n id: 'extension.command.undo.description',\n message: 'Undo the most recent action',\n comment: 'Description for undo.'\n};\nconst REDO_LABEL =\n/*i18n*/\n{\n id: 'extension.command.redo.label',\n message: 'Redo',\n comment: 'Label for redo.'\n};\nconst REDO_DESCRIPTION =\n/*i18n*/\n{\n id: 'extension.command.redo.description',\n message: 'Redo the most recent action',\n comment: 'Description for redo.'\n};\n\nvar extensionHistoryMessages = /*#__PURE__*/Object.freeze({\n __proto__: null,\n REDO_DESCRIPTION: REDO_DESCRIPTION,\n REDO_LABEL: REDO_LABEL,\n UNDO_DESCRIPTION: UNDO_DESCRIPTION,\n UNDO_LABEL: UNDO_LABEL\n});\n\nconst LABEL$7 =\n/*i18n*/\n{\n id: 'extension.command.insert-horizontal-rule.label',\n message: 'Divider',\n comment: 'Label for inserting a horizontal rule (divider) command.'\n};\nconst DESCRIPTION$5 =\n/*i18n*/\n{\n id: 'extension.command.insert-horizontal-rule.description',\n message: 'Separate content with a diving horizontal line',\n comment: 'Description for inserting a horizontal rule (divider) command.'\n};\n\nvar extensionHorizontalRuleMessages = /*#__PURE__*/Object.freeze({\n __proto__: null,\n DESCRIPTION: DESCRIPTION$5,\n LABEL: LABEL$7\n});\n\nconst LABEL$6 =\n/*i18n*/\n{\n id: 'extension.command.toggle-italic.label',\n message: 'Italic',\n comment: 'Label for italic formatting command.'\n};\nconst DESCRIPTION$4 =\n/*i18n*/\n{\n id: 'extension.command.toggle-italic.description',\n message: 'Italicize the selected text',\n comment: 'Description for italic formatting command.'\n};\n\nvar extensionItalicMessages = /*#__PURE__*/Object.freeze({\n __proto__: null,\n DESCRIPTION: DESCRIPTION$4,\n LABEL: LABEL$6\n});\n\nconst ORDERED_LIST_LABEL =\n/*i18n*/\n{\n id: 'extension.command.toggle-ordered-list.label',\n message: 'Ordered list',\n comment: 'Label for inserting an ordered list into the editor.'\n};\nconst BULLET_LIST_LABEL =\n/*i18n*/\n{\n id: 'extension.command.toggle-bullet-list.description',\n message: 'Bulleted list',\n comment: 'Description for inserting a bullet list into the editor.'\n};\nconst TASK_LIST_LABEL =\n/*i18n*/\n{\n id: 'extension.command.toggle-task-list.description',\n message: 'Tasked list',\n comment: 'Description for inserting a task list into the editor.'\n};\n\nvar extensionListMessages = /*#__PURE__*/Object.freeze({\n __proto__: null,\n BULLET_LIST_LABEL: BULLET_LIST_LABEL,\n ORDERED_LIST_LABEL: ORDERED_LIST_LABEL,\n TASK_LIST_LABEL: TASK_LIST_LABEL\n});\n\nconst INCREASE_INDENT_LABEL =\n/*i18n*/\n{\n id: 'extension.command.increase-indent.label',\n message: 'Increase indentation',\n comment: 'Label for increasing the indentation level.'\n};\nconst DECREASE_INDENT_LABEL =\n/*i18n*/\n{\n id: 'extension.command.decrease-indent.label',\n message: 'Decrease indentation',\n comment: 'Label for decreasing the indentation level of the current node block.'\n};\nconst CENTER_ALIGN_LABEL =\n/*i18n*/\n{\n id: 'extension.command.center-align.label',\n message: 'Center align',\n comment: 'Center align the text in the current node.'\n};\nconst JUSTIFY_ALIGN_LABEL =\n/*i18n*/\n{\n id: 'extension.command.justify-align.label',\n message: 'Justify',\n comment: 'Justify the alignment of the selected nodes.'\n};\nconst RIGHT_ALIGN_LABEL =\n/*i18n*/\n{\n id: 'extension.command.right-align.label',\n message: 'Right align',\n comment: 'Right align the selected nodes.'\n};\nconst LEFT_ALIGN_LABEL =\n/*i18n*/\n{\n id: 'extension.command.left-align.label',\n message: 'Left align',\n comment: 'Left align the selected nodes.'\n};\n\nvar extensionNodeFormattingMessages = /*#__PURE__*/Object.freeze({\n __proto__: null,\n CENTER_ALIGN_LABEL: CENTER_ALIGN_LABEL,\n DECREASE_INDENT_LABEL: DECREASE_INDENT_LABEL,\n INCREASE_INDENT_LABEL: INCREASE_INDENT_LABEL,\n JUSTIFY_ALIGN_LABEL: JUSTIFY_ALIGN_LABEL,\n LEFT_ALIGN_LABEL: LEFT_ALIGN_LABEL,\n RIGHT_ALIGN_LABEL: RIGHT_ALIGN_LABEL\n});\n\nconst INSERT_LABEL =\n/*i18n*/\n{\n id: 'extension.command.insert-paragraph.label',\n message: 'Insert Paragraph',\n comment: 'Label for inserting a paragraph.'\n};\nconst INSERT_DESCRIPTION =\n/*i18n*/\n{\n id: 'extension.command.insert-paragraph.description',\n message: 'Insert a new paragraph',\n comment: 'Description for inserting a paragraph.'\n};\nconst CONVERT_LABEL =\n/*i18n*/\n{\n id: 'extension.command.convert-paragraph.label',\n message: 'Convert Paragraph',\n comment: 'Label for converting the current node into a paragraph.'\n};\nconst CONVERT_DESCRIPTION =\n/*i18n*/\n{\n id: 'extension.command.convert-paragraph.description',\n message: 'Convert current block into a paragraph block.',\n comment: 'Description for converting a paragraph.'\n};\n\nvar extensionParagraphMessages = /*#__PURE__*/Object.freeze({\n __proto__: null,\n CONVERT_DESCRIPTION: CONVERT_DESCRIPTION,\n CONVERT_LABEL: CONVERT_LABEL,\n INSERT_DESCRIPTION: INSERT_DESCRIPTION,\n INSERT_LABEL: INSERT_LABEL\n});\n\nconst LABEL$5 =\n/*i18n*/\n{\n id: 'extension.command.toggle-strike.label',\n message: 'Strikethrough',\n comment: 'Label for strike formatting command.'\n};\nconst DESCRIPTION$3 =\n/*i18n*/\n{\n id: 'extension.command.toggle-strike.description',\n message: 'Strikethrough the selected text',\n comment: 'Description for strike formatting command.'\n};\n\nvar extensionStrikeMessages = /*#__PURE__*/Object.freeze({\n __proto__: null,\n DESCRIPTION: DESCRIPTION$3,\n LABEL: LABEL$5\n});\n\nconst LABEL$4 =\n/*i18n*/\n{\n id: 'extension.command.toggle-subscript.label',\n message: 'Subscript',\n comment: 'Label for toggling a subscript.'\n};\n\nvar extensionSubMessages = /*#__PURE__*/Object.freeze({\n __proto__: null,\n LABEL: LABEL$4\n});\n\nconst LABEL$3 =\n/*i18n*/\n{\n id: 'extension.command.toggle-superscript.label',\n message: 'Superscript',\n comment: 'Label for toggling a superscript.'\n};\n\nvar extensionSupMessages = /*#__PURE__*/Object.freeze({\n __proto__: null,\n LABEL: LABEL$3\n});\n\nconst CREATE_COMMAND_LABEL =\n/*i18n*/\n{\n id: 'extension.command.create-table.label',\n message: 'Create table',\n comment: 'Label for creating a table'\n};\nconst CREATE_COMMAND_DESCRIPTION =\n/*i18n*/\n{\n id: 'extension.command.create-table.description',\n message: 'Create a table with set number of rows and columns.',\n comment: 'Description for creating a table'\n};\n\n/**\n * Takes a `{ count: number }` value to denote the number of columns.\n */\nconst COLUMN_COUNT =\n/*i18n*/\n{\n id: 'extension.table.column_count',\n message: '{count, plural, one {# column} other {# columns}}',\n comment: 'The number of columns'\n};\n\n/**\n * Takes a `{ count: number }` value to denote the number of rows.\n */\nconst ROW_COUNT =\n/*i18n*/\n{\n id: 'extension.table.row_count',\n message: '{count, plural, one {# row} other {# rows}}',\n comment: 'The number of rows'\n};\n\nvar extensionTablesMessages = /*#__PURE__*/Object.freeze({\n __proto__: null,\n COLUMN_COUNT: COLUMN_COUNT,\n CREATE_COMMAND_DESCRIPTION: CREATE_COMMAND_DESCRIPTION,\n CREATE_COMMAND_LABEL: CREATE_COMMAND_LABEL,\n ROW_COUNT: ROW_COUNT\n});\n\nconst TOGGLE_LABEL =\n/*i18n*/\n{\n id: 'extension.command.toggle-upper-case.label',\n message: \"{case, select, upper {Uppercase}\\nlower {Lowercase}\\ncapitalize {Sentence case}\\nsmallCaps {Small caps}\\nother {Text case}}\",\n comment: 'Label for toggling between upper and lower case.'\n};\nconst SET_LABEL =\n/*i18n*/\n{\n id: 'extension.command.set-casing.label',\n message: 'Set text case',\n comment: 'Label for setting the case.'\n};\n\nvar extensionTextCaseMessages = /*#__PURE__*/Object.freeze({\n __proto__: null,\n SET_LABEL: SET_LABEL,\n TOGGLE_LABEL: TOGGLE_LABEL\n});\n\nconst SET_COLOR_LABEL =\n/*i18n*/\n{\n id: 'extension.command.set-text-color.label',\n message: 'Text color',\n comment: 'Label for color formatting command.'\n};\nconst SET_COLOR_DESCRIPTION =\n/*i18n*/\n{\n id: 'extension.command.set-text-color.description',\n message: 'Set the text color for the selected text.',\n comment: 'Description for color formatting command.'\n};\nconst TRANSPARENT =\n/*i18n*/\n{\n id: 'ui.text-color.transparent',\n message: 'Transparent',\n comment: 'Transparent color label.'\n};\nconst WHITE =\n/*i18n*/\n{\n id: 'ui.text-color.white',\n message: 'White',\n comment: 'White color.'\n};\nconst BLACK =\n/*i18n*/\n{\n id: 'ui.text-color.black',\n message: 'Black',\n comment: 'Black color.'\n};\nconst GRAY =\n/*i18n*/\n{\n id: 'ui.text-color.gray',\n message: \"Gray\",\n comment: 'Gray color.'\n};\nconst GRAY_HUE =\n/*i18n*/\n{\n id: 'ui.text-color.gray.hue',\n message: \"Gray {hue}\",\n comment: 'Gray color hues.'\n};\nconst RED =\n/*i18n*/\n{\n id: 'ui.text-color.red',\n message: \"Red\",\n comment: 'Red color.'\n};\nconst RED_HUE =\n/*i18n*/\n{\n id: 'ui.text-color.red.hue',\n message: \"Red {hue}\",\n comment: 'Red color hues.'\n};\nconst PINK =\n/*i18n*/\n{\n id: 'ui.text-color.pink',\n message: \"Pink\",\n comment: 'Pink color.'\n};\nconst PINK_HUE =\n/*i18n*/\n{\n id: 'ui.text-color.pink.hue',\n message: \"Pink {hue}\",\n comment: 'Pink color hues.'\n};\nconst GRAPE =\n/*i18n*/\n{\n id: 'ui.text-color.grape',\n message: \"Grape\",\n comment: 'Grape color.'\n};\nconst GRAPE_HUE =\n/*i18n*/\n{\n id: 'ui.text-color.grape.hue',\n message: \"Grape {hue}\",\n comment: 'Grape color hues.'\n};\nconst VIOLET =\n/*i18n*/\n{\n id: 'ui.text-color.violet',\n message: \"Violet\",\n comment: 'Violet color.'\n};\nconst VIOLET_HUE =\n/*i18n*/\n{\n id: 'ui.text-color.violet.hue',\n message: \"Violet {hue}\",\n comment: 'Violet color hues.'\n};\nconst INDIGO =\n/*i18n*/\n{\n id: 'ui.text-color.indigo',\n message: \"Indigo\",\n comment: 'Indigo color.'\n};\nconst INDIGO_HUE =\n/*i18n*/\n{\n id: 'ui.text-color.indigo.hue',\n message: \"Indigo {hue}\",\n comment: 'Indigo color hues.'\n};\nconst BLUE =\n/*i18n*/\n{\n id: 'ui.text-color.blue',\n message: \"Blue\",\n comment: 'Blue color.'\n};\nconst BLUE_HUE =\n/*i18n*/\n{\n id: 'ui.text-color.blue.hue',\n message: \"Blue {hue}\",\n comment: 'Blue color hues.'\n};\nconst CYAN =\n/*i18n*/\n{\n id: 'ui.text-color.cyan',\n message: \"Cyan\",\n comment: 'Cyan color.'\n};\nconst CYAN_HUE =\n/*i18n*/\n{\n id: 'ui.text-color.cyan.hue',\n message: \"Cyan {hue}\",\n comment: 'Cyan color hues.'\n};\nconst TEAL =\n/*i18n*/\n{\n id: 'ui.text-color.teal',\n message: \"Teal\",\n comment: 'Teal color.'\n};\nconst TEAL_HUE =\n/*i18n*/\n{\n id: 'ui.text-color.teal.hue',\n message: \"Teal {hue}\",\n comment: 'Teal color hues.'\n};\nconst GREEN =\n/*i18n*/\n{\n id: 'ui.text-color.green',\n message: \"Green\",\n comment: 'Green color.'\n};\nconst GREEN_HUE =\n/*i18n*/\n{\n id: 'ui.text-color.green.hue',\n message: \"Green {hue}\",\n comment: 'Green color hues.'\n};\nconst LIME =\n/*i18n*/\n{\n id: 'ui.text-color.lime',\n message: \"Lime\",\n comment: 'Lime color.'\n};\nconst LIME_HUE =\n/*i18n*/\n{\n id: 'ui.text-color.lime.hue',\n message: \"Lime {hue}\",\n comment: 'Lime color hues.'\n};\nconst YELLOW =\n/*i18n*/\n{\n id: 'ui.text-color.yellow',\n message: \"Yellow\",\n comment: 'Yellow color.'\n};\nconst YELLOW_HUE =\n/*i18n*/\n{\n id: 'ui.text-color.yellow.hue',\n message: \"Yellow {hue}\",\n comment: 'Yellow color hues.'\n};\nconst ORANGE =\n/*i18n*/\n{\n id: 'ui.text-color.orange',\n message: \"Orange\",\n comment: 'Orange color.'\n};\nconst ORANGE_HUE =\n/*i18n*/\n{\n id: 'ui.text-color.orange.hue',\n message: \"Orange {hue}\",\n comment: 'Orange color hues.'\n};\n\nvar extensionTextColorMessages = /*#__PURE__*/Object.freeze({\n __proto__: null,\n BLACK: BLACK,\n BLUE: BLUE,\n BLUE_HUE: BLUE_HUE,\n CYAN: CYAN,\n CYAN_HUE: CYAN_HUE,\n GRAPE: GRAPE,\n GRAPE_HUE: GRAPE_HUE,\n GRAY: GRAY,\n GRAY_HUE: GRAY_HUE,\n GREEN: GREEN,\n GREEN_HUE: GREEN_HUE,\n INDIGO: INDIGO,\n INDIGO_HUE: INDIGO_HUE,\n LIME: LIME,\n LIME_HUE: LIME_HUE,\n ORANGE: ORANGE,\n ORANGE_HUE: ORANGE_HUE,\n PINK: PINK,\n PINK_HUE: PINK_HUE,\n RED: RED,\n RED_HUE: RED_HUE,\n SET_COLOR_DESCRIPTION: SET_COLOR_DESCRIPTION,\n SET_COLOR_LABEL: SET_COLOR_LABEL,\n TEAL: TEAL,\n TEAL_HUE: TEAL_HUE,\n TRANSPARENT: TRANSPARENT,\n VIOLET: VIOLET,\n VIOLET_HUE: VIOLET_HUE,\n WHITE: WHITE,\n YELLOW: YELLOW,\n YELLOW_HUE: YELLOW_HUE\n});\n\nconst LABEL$2 =\n/*i18n*/\n{\n id: 'extension.command.set-text-highlight.label',\n message: 'Text highlight',\n comment: 'Label for adding a text highlight.'\n};\nconst DESCRIPTION$2 =\n/*i18n*/\n{\n id: 'extension.command.set-text-highlight.description',\n message: 'Set the text highlight color for the selected text.',\n comment: 'Description for adding a text highlight.'\n};\n\nvar extensionTextHighlightMessages = /*#__PURE__*/Object.freeze({\n __proto__: null,\n DESCRIPTION: DESCRIPTION$2,\n LABEL: LABEL$2\n});\n\nconst LABEL$1 =\n/*i18n*/\n{\n id: 'extension.command.toggle-underline.label',\n message: 'Underline',\n comment: 'Label for underline formatting command.'\n};\nconst DESCRIPTION$1 =\n/*i18n*/\n{\n id: 'extension.command.toggle-underline.description',\n message: 'Underline the selected text',\n comment: 'Description for underline formatting command.'\n};\n\nvar extensionUnderlineMessages = /*#__PURE__*/Object.freeze({\n __proto__: null,\n DESCRIPTION: DESCRIPTION$1,\n LABEL: LABEL$1\n});\n\nconst LABEL =\n/*i18n*/\n{\n id: 'extension.command.toggle-whitespace.label',\n message: 'Toggle Whitespace',\n comment: 'Label for displaying whitespace characters.'\n};\nconst DESCRIPTION =\n/*i18n*/\n{\n id: 'extension.command.toggle-whitespace.description',\n message: 'Show hidden whitespace characters in your editor.',\n comment: 'Description for displaying whitespace characters.'\n};\n\nvar extensionWhitespaceMessages = /*#__PURE__*/Object.freeze({\n __proto__: null,\n DESCRIPTION: DESCRIPTION,\n LABEL: LABEL\n});\n\nconst NO_ITEMS_AVAILABLE =\n/*i18n*/\n{\n id: 'react-components.mention-atom-component.zero-items',\n message: 'No items available',\n comment: 'Shown when no popup items are available'\n};\n\nvar reactComponentsMessages = /*#__PURE__*/Object.freeze({\n __proto__: null,\n NO_ITEMS_AVAILABLE: NO_ITEMS_AVAILABLE\n});\n\nexport { coreMessages as CoreMessages, coreUtilsMessages as CoreUtilsMessages, extensionAnnotationMessages as ExtensionAnnotationMessages, extensionBidiMessages as ExtensionBidiMessages, extensionBlockquoteMessages as ExtensionBlockquoteMessages, extensionBoldMessages as ExtensionBoldMessages, extensionCalloutMessages as ExtensionCalloutMessages, extensionCodeBlockMessages as ExtensionCodeBlockMessages, extensionCodeMessages as ExtensionCodeMessages, extensionColumnsMessages as ExtensionColumnsMessages, extensionEmojiMessages as ExtensionEmojiMessages, extensionFontSizeMessages as ExtensionFontSizeMessages, extensionHeadingMessages as ExtensionHeadingMessages, extensionHistoryMessages as ExtensionHistoryMessages, extensionHorizontalRuleMessages as ExtensionHorizontalRuleMessages, extensionItalicMessages as ExtensionItalicMessages, extensionListMessages as ExtensionListMessages, extensionNodeFormattingMessages as ExtensionNodeFormattingMessages, extensionParagraphMessages as ExtensionParagraphMessages, extensionStrikeMessages as ExtensionStrikeMessages, extensionSubMessages as ExtensionSubMessages, extensionSupMessages as ExtensionSupMessages, extensionTablesMessages as ExtensionTablesMessages, extensionTextCaseMessages as ExtensionTextCaseMessages, extensionTextColorMessages as ExtensionTextColorMessages, extensionTextHighlightMessages as ExtensionTextHighlightMessages, extensionUnderlineMessages as ExtensionUnderlineMessages, extensionWhitespaceMessages as ExtensionWhitespaceMessages, reactComponentsMessages as ReactComponentMessages };\n", "import type {\n ApplySchemaAttributes,\n CommandFunction,\n KeyBindings,\n NodeSpecOverride,\n} from '@remirror/core'\nimport type { TableSchemaSpec } from '@remirror/extension-tables'\nimport {\n TableCellExtension,\n TableExtension,\n TableHeaderCellExtension,\n TableRowExtension,\n} from '@remirror/extension-tables'\nimport { TextSelection } from '@remirror/pm/state'\n\nimport type { NodeSerializerOptions } from '../../transform'\nimport { ParserRuleType } from '../../transform'\nimport { buildBlockEnterKeymap } from '../../utils/build-block-enter-keymap'\nimport { CellSelection } from '@remirror/pm/tables'\n\nenum TABLE_ALIGEN {\n DEFAULT = 1,\n CENTER = 2,\n RIGHT = 3,\n LEFT = 4,\n}\n\nexport class LineTableExtension extends TableExtension {\n get name() {\n return 'table' as const\n }\n\n createKeymap = (): KeyBindings => {\n const schema = this.store.schema\n\n return buildBlockEnterKeymap(\n /^\\|((?:[^\\|]+\\|){2,})\\s*$/,\n ({ match }) => {\n const texts = match[1]\n .split('|')\n .slice(0, -1) // Remove the empty string at the end\n .map((text) => {\n text = text.trim()\n if (!text) text = ' ' // Prosemirror text doesn't allow empty text\n return schema.text(text)\n })\n\n const cells1 = texts.map((text) => schema.nodes.tableCell.create(null, text)) // first row\n const cells2 = texts.map(() => schema.nodes.tableCell.create(null)) // second row\n const row1 = schema.nodes.tableRow.create(null, cells1)\n const row2 = schema.nodes.tableRow.create(null, cells2)\n const table = schema.nodes.table.create(null, [row1, row2])\n return table\n },\n ({ tr }) => {\n const $cursor = (tr.selection as TextSelection)?.$cursor\n if (!$cursor) {\n return tr\n } else {\n const depth = $cursor.depth - 1\n const pos = $cursor.posAtIndex($cursor.index(depth) - 1, depth)\n const $pos = tr.doc.resolve(pos)\n return tr.setSelection(TextSelection.near($pos))\n }\n },\n )\n }\n\n public fromMarkdown() {\n return [\n {\n type: ParserRuleType.block,\n token: 'table',\n node: this.name,\n hasOpenClose: true,\n },\n { type: ParserRuleType.ignore, token: 'thead_open' },\n { type: ParserRuleType.ignore, token: 'thead_close' },\n { type: ParserRuleType.ignore, token: 'tbody_open' },\n { type: ParserRuleType.ignore, token: 'tbody_close' },\n ] as const\n }\n\n public toMarkdown({ state, node }: NodeSerializerOptions) {\n const table: string[][] = []\n const colAligns: TABLE_ALIGEN[] = []\n node.forEach((rowNode, _, rowIndex) => {\n const row: string[] = []\n rowNode.forEach((cellNode, __, colIndex) => {\n row.push(replaceNewLines(cellNode.textContent.trim()))\n if (rowIndex === 0) {\n colAligns[colIndex] = TABLE_ALIGEN.DEFAULT\n }\n })\n table.push(row)\n })\n const colNumber = colAligns.length\n\n const colWidths = new Array<number>(colNumber)\n table.forEach((row) => {\n row.forEach((cell, colIndex) => {\n if (!colWidths[colIndex]) colWidths[colIndex] = 3\n colWidths[colIndex] = Math.max(cell.length, colWidths[colIndex])\n })\n })\n\n const spliter: string[] = new Array(colNumber)\n colWidths.forEach((width, colIndex) => {\n switch (colAligns[colIndex]) {\n case TABLE_ALIGEN.LEFT:\n spliter[colIndex] = ':' + '-'.repeat(width - 1)\n break\n case TABLE_ALIGEN.RIGHT:\n spliter[colIndex] = '-'.repeat(width - 1) + ':'\n break\n case TABLE_ALIGEN.CENTER:\n spliter[colIndex] = ':' + '-'.repeat(width - 2) + ':'\n break\n default:\n spliter[colIndex] = '-'.repeat(width)\n break\n }\n })\n table.splice(1, 0, spliter)\n\n let text = ''\n table.forEach((row) => {\n row.forEach((cell, col) => {\n text += '| '\n const width = colWidths[col]\n if (colAligns[col] === TABLE_ALIGEN.CENTER) {\n const pad = ' '.repeat(Math.round((width - cell.length) / 2))\n text += (pad + cell + pad).padEnd(width)\n } else if (colAligns[col] === TABLE_ALIGEN.RIGHT) {\n text += cell.padStart(width)\n } else {\n text += cell.padEnd(width)\n }\n text += ' '\n })\n text += '|\\n'\n })\n text += '\\n'\n\n state.text(text, false)\n }\n\n public createExtensions() {\n return []\n }\n}\n\nexport class LineTableRowExtension extends TableRowExtension {\n get name() {\n return 'tableRow' as const\n }\n\n createNodeSpec(extra: ApplySchemaAttributes, override: NodeSpecOverride): TableSchemaSpec {\n return { ...super.createNodeSpec(extra, override), allowGapCursor: false }\n }\n\n public fromMarkdown() {\n return [\n {\n type: ParserRuleType.block,\n token: 'tr',\n node: this.name,\n hasOpenClose: true,\n },\n ] as const\n }\n\n public toMarkdown() {}\n\n public createExtensions() {\n return []\n }\n}\n\nexport class LineTableHeaderCellExtension extends TableHeaderCellExtension {\n get name() {\n return 'tableHeaderCell' as const\n }\n\n public fromMarkdown() {\n return [] as const\n }\n\n public toMarkdown() {}\n\n public createExtensions() {\n return []\n }\n}\n\nexport class LineTableCellExtension extends TableCellExtension {\n get name() {\n return 'tableCell' as const\n }\n\n createNodeSpec(extra: ApplySchemaAttributes, override: NodeSpecOverride): TableSchemaSpec {\n return {\n ...super.createNodeSpec(extra, override),\n content: 'inline*',\n }\n }\n\n createExtensions() {\n return []\n }\n\n createCommands() {\n return {\n selectTableCell: ({ pos }: { pos: number }): CommandFunction => {\n return ({ tr, dispatch }): boolean => {\n if (tr.setSelection(CellSelection.create(tr.doc, pos))) {\n dispatch?.(tr)\n return true\n }\n return false\n }\n },\n }\n }\n\n public fromMarkdown() {\n return [\n {\n type: ParserRuleType.block,\n token: 'th',\n node: this.name,\n hasOpenClose: true,\n },\n {\n type: ParserRuleType.block,\n token: 'td',\n node: this.name,\n hasOpenClose: true,\n },\n ] as const\n }\n\n public toMarkdown() {}\n}\n\nexport function replaceNewLines(str: string) {\n const replacedStr = str.replace(/\\n/g, \"\")\n return replacedStr\n}\n", "import type { DispatchFunction, KeyBindings, ProsemirrorNode } from \"@remirror/core\"\nimport { convertCommand, isTextSelection } from \"@remirror/core\"\nimport { Fragment } from \"@remirror/pm/model\"\nimport type { EditorState, Transaction } from \"@remirror/pm/state\"\n\nexport function buildBlockEnterKeymap<Node extends ProsemirrorNode>(\n regex: RegExp,\n getNode: (args: { match: string[]; start: number; end: number }) => Node,\n transact?: (args: { tr: Transaction }) => Transaction,\n): KeyBindings {\n // https://github.com/ProseMirror/prosemirror/issues/374#issuecomment-224514332\n // https://discuss.prosemirror.net/t/trigger-inputrule-on-enter/1118/4\n // Some code is copy from prosemirror-inputrules/src/inputrules.js\n return {\n Enter: convertCommand((state: EditorState, dispatch?: DispatchFunction) => {\n // Ensure that the selection is a TextSelection\n if (!isTextSelection(state.selection)) return false\n\n // Ensure that the selection is cursor (empty selection)\n const $cursor = state.selection.$cursor\n if (!$cursor) return false\n\n // Get the text before the selection\n const { nodeBefore } = state.selection.$from\n const textBefore = nodeBefore && nodeBefore.isText && nodeBefore.text\n if (!textBefore) return false\n\n // Execute the regular expression\n const match = regex.exec(textBefore)\n if (!match) return false\n\n // The range of text which will be replaced\n const [start, end] = [$cursor.pos - match[0].length, $cursor.pos]\n const $start = state.doc.resolve(start)\n\n const node = getNode({ match, start, end })\n\n // Ensure that the replacement is available\n const parent = $start.node(-1)\n const replaceFromIndex = $start.index(-1)\n const replaceToIndex = $start.indexAfter(-1)\n if (!parent.canReplace(replaceFromIndex, replaceToIndex, Fragment.from(node))) {\n return false\n }\n\n let tr: Transaction = state.tr\n\n // Insert the Prosemirror node\n tr = tr.replaceRangeWith(start, end, node)\n\n // Run transact\n if (transact) {\n tr = transact({ tr })\n }\n\n if (dispatch) {\n // To be able to query whether a command is applicable for a given state, without\n // actually executing it, the `dispatch` argument is optional\u2014commands should\n // simply return true without doing anything when they are applicable but no\n // `dispatch` argument is given\n // https://prosemirror.net/docs/guide/#commands\n dispatch(tr)\n }\n return true\n }),\n }\n}\n", "import { LineTableCellExtension, LineTableHeaderCellExtension } from './Table/table-extension'\nimport {\n // BoldExtension,\n // BulletListExtension,\n // CodeBlockExtension,\n DropCursorExtension,\n // MentionExtension,\n // EmojiExtension,\n // GapCursorExtension,\n // HardBreakExtension,\n // HeadingExtension,\n // HistoryExtension,\n // ItalicExtension,\n // LinkExtension,\n // ListItemExtension,\n // ListItemSharedExtension,\n // OrderedListExtension,\n // ShortcutsExtension,\n // StrikeExtension,\n // SubExtension,\n // TableCellExtension,\n // TableExtension,\n // TaskListExtension,\n // UnderlineExtension,\n // PlaceholderExtension,\n} from 'remirror/extensions'\n// import data from 'svgmoji/emoji.json'\nimport { LineInlineDecorationExtension, LineInlineMarkExtension, markExtensions } from './Inline'\nimport { LineHeadingExtension } from './Heading'\nimport { LineParagraphExtension } from './Paragraph'\nimport { LineTextExtension } from './Text'\nimport { LineListExtension } from './List'\nimport { corePreset } from '@remirror/preset-core'\nimport { LineBlockquoteExtension } from './BlockQuote'\nimport { LineHardBreakExtension } from './HardBreak'\nimport { ReactComponentExtension } from '@remirror/react'\nimport { LineCodeMirrorExtension } from './CodeMirror/codemirror-extension'\nimport { LineTableExtension, LineTableRowExtension } from './Table'\nimport { LineHorizontalRuleExtension } from './HorizontalRule'\nimport { CountExtension } from '@remirror/extension-count'\nimport { FindExtension } from '@remirror/extension-find'\nimport { LineHtmlBlockExtension } from './HtmlNode/html-block-extension'\nimport { HtmlImageExtension } from './Image'\nimport { IframeExtension } from './Iframe'\nimport { SlashMenuExtension } from './SlashMenu'\nimport { PlaceholderExtension } from './Placeholder'\nimport { ClipboardExtension } from './Clipboard'\n\n// import { TableExtension } from './ReactTables';\n\nexport * from './List'\n\nexport type ExtensionsOptions = {\n handleViewImgSrcUrl?: (src: string) => Promise<string>\n}\n\nfunction extensions({ handleViewImgSrcUrl }: ExtensionsOptions): any[] {\n return [\n ...corePreset({ excludeExtensions: ['paragraph', 'text'] }),\n ...markExtensions({\n handleViewImgSrcUrl,\n }),\n new CountExtension({}),\n new HtmlImageExtension({\n handleViewImgSrcUrl,\n }),\n new IframeExtension({\n enableResizing: true,\n }),\n\n new PlaceholderExtension({ placeholder: 'Type \\'/\\' for commands' }),\n new LineHorizontalRuleExtension({}),\n new LineParagraphExtension(),\n new LineTextExtension(),\n new LineHardBreakExtension(),\n new LineBlockquoteExtension(),\n new LineHeadingExtension({}),\n new LineListExtension(),\n new LineCodeMirrorExtension({}),\n new LineTableExtension({ resizable: false }),\n new LineTableRowExtension(),\n new LineTableCellExtension(),\n new LineTableHeaderCellExtension(),\n new FindExtension({\n decoration: { style: 'background-color: yellow; color: black' },\n activeDecoration: { style: 'background-color: orange; color: black' },\n }),\n new LineHtmlBlockExtension(),\n new ClipboardExtension(),\n\n new ReactComponentExtension({}),\n new DropCursorExtension({}),\n\n new SlashMenuExtension(),\n new LineInlineMarkExtension(),\n new LineInlineDecorationExtension(),\n ]\n}\n\nexport default extensions\n", "import type { CreateExtensionPlugin } from '@remirror/core'\nimport { isTextSelection, PlainExtension } from '@remirror/core'\nimport type { Node as ProsemirrorNode } from '@remirror/pm/model'\nimport type { EditorState } from '@remirror/pm/state'\nimport { Decoration, DecorationSet } from '@remirror/pm/view'\n\nimport type { LineMarkAttrs } from './inline-mark-extensions'\nimport { isAutoHideMark } from './inline-mark-extensions'\n\ntype TextAttrs = Partial<LineMarkAttrs & { isAutoHideMark?: boolean }>\n\nfunction getTextAttrs(textNode: ProsemirrorNode | undefined | null): TextAttrs {\n const attrs: TextAttrs = {}\n for (const mark of textNode?.marks || []) {\n if (isAutoHideMark(mark.type.name)) {\n attrs.isAutoHideMark = true\n }\n Object.assign(attrs, mark.attrs)\n }\n return attrs\n}\n\nfunction findVisibleMarks(\n textBlock: ProsemirrorNode,\n cursorPos: number,\n textIndex: number,\n includeBefore: boolean,\n): [number, number][] {\n const posPairs: [number, number][] = []\n\n let textStartPos = cursorPos\n for (let i = textIndex; i < textBlock.content.childCount; i++) {\n const textNode = textBlock.content.child(i)\n const info = getTextAttrs(textNode)\n if (info.isAutoHideMark) {\n posPairs.push([textStartPos, textStartPos + textNode.nodeSize])\n }\n textStartPos += textNode.nodeSize\n if (info.depth === 1 && info.last) break\n }\n\n const infoAfterCursor = getTextAttrs(textBlock.maybeChild(textIndex))\n if (infoAfterCursor.depth === 1 && infoAfterCursor.first && !includeBefore) {\n return posPairs\n }\n\n let textEndPos = cursorPos\n for (let i = textIndex - 1; i >= 0; i--) {\n const textNode = textBlock.content.child(i)\n const info = getTextAttrs(textNode)\n if (info.isAutoHideMark) {\n posPairs.push([textEndPos - textNode.nodeSize, textEndPos])\n }\n textEndPos -= textNode.nodeSize\n if (info.depth === 1 && info.first) break\n }\n\n return posPairs\n}\n\nfunction createDecorationPlugin(): CreateExtensionPlugin {\n return {\n props: {\n decorations: (state: EditorState) => {\n if (!isTextSelection(state.selection)) return null\n\n const $pos = state.selection.$anchor\n\n const textBlock = $pos.parent\n if (!textBlock.isTextblock) return null\n\n let posPairs: [number, number][]\n\n if ($pos.textOffset === 0) {\n posPairs = findVisibleMarks(textBlock, $pos.pos, $pos.index($pos.depth), true)\n } else {\n const textNodeIndex = $pos.index($pos.depth)\n const textNode = textBlock.content.maybeChild(textNodeIndex)\n if (!textNode) return null\n\n const tokenDepth = getTextAttrs(textNode).depth\n if (!tokenDepth) return null\n\n posPairs = findVisibleMarks(\n textBlock,\n $pos.pos - $pos.textOffset,\n $pos.index($pos.depth),\n false,\n )\n }\n\n return DecorationSet.create(\n state.doc,\n posPairs.map(([from, to]) => Decoration.inline(from, to, { class: 'show' })),\n )\n },\n },\n }\n}\n\nexport class LineInlineDecorationExtension extends PlainExtension {\n get name() {\n return 'inlineDecoration' as const\n }\n\n createPlugin(): CreateExtensionPlugin {\n return createDecorationPlugin()\n }\n}\n", "import type { KeyBindingProps, MarkExtensionSpec, NodeView, NodeViewMethod } from '@remirror/core'\nimport { MarkExtension, extension, keyBinding } from '@remirror/core'\n\nimport { formatHref } from './format-href'\nimport { toggleInlineMark } from './inline-mark-commands'\nimport { LineHtmlInlineExtension } from '../HtmlNode'\n\nconst commonAttrs = {\n depth: { default: 0 },\n}\nconst endpointAttrs = {\n depth: { default: 0 },\n first: { default: false },\n last: { default: false },\n}\n\nclass MetaKey extends MarkExtension {\n static disableExtraAttributes = true\n get name() {\n return 'mdMark' as const\n }\n createMarkSpec(): MarkExtensionSpec {\n return {\n inclusive: false,\n attrs: endpointAttrs,\n toDOM: () => ['span', { class: 'md-mark' }, 0],\n }\n }\n\n createCommands() {\n return {\n toggleInlineMark: toggleInlineMark,\n }\n }\n}\n\nclass PlainText extends MarkExtension {\n static disableExtraAttributes = true\n get name() {\n return 'mdText' as const\n }\n createMarkSpec(): MarkExtensionSpec {\n return {\n attrs: endpointAttrs,\n toDOM: () => ['span', 0],\n }\n }\n}\n\nclass Emphasis extends MarkExtension {\n static disableExtraAttributes = true\n get name() {\n return 'mdEm' as const\n }\n createMarkSpec(): MarkExtensionSpec {\n return {\n attrs: commonAttrs,\n toDOM: () => ['em', 0],\n }\n }\n\n @keyBinding({ shortcut: 'mod-i', command: 'toggleEmphasis' })\n shortcut(props: KeyBindingProps): boolean {\n return toggleInlineMark(this.name)(props)\n }\n}\n\nclass Strong extends MarkExtension {\n static disableExtraAttributes = true\n get name() {\n return 'mdStrong' as const\n }\n createMarkSpec(): MarkExtensionSpec {\n return {\n attrs: commonAttrs,\n toDOM: () => ['strong', 0],\n }\n }\n\n @keyBinding({ shortcut: 'mod-b', command: 'toggleStrong' })\n shortcut(props: KeyBindingProps): boolean {\n return toggleInlineMark(this.name)(props)\n }\n}\n\nclass CodeText extends MarkExtension {\n static disableExtraAttributes = true\n get name() {\n return 'mdCodeText' as const\n }\n createMarkSpec(): MarkExtensionSpec {\n return {\n attrs: commonAttrs,\n toDOM: () => ['code', 0],\n }\n }\n\n @keyBinding({ shortcut: 'mod-e', command: 'toggleCodeText' })\n shortcut(props: KeyBindingProps): boolean {\n return toggleInlineMark(this.name)(props)\n }\n}\n\nclass CodeSpace extends MarkExtension {\n static disableExtraAttributes = true\n get name() {\n return 'mdCodeSpace' as const\n }\n createMarkSpec(): MarkExtensionSpec {\n return {\n attrs: commonAttrs,\n toDOM: () => ['span', 0],\n }\n }\n}\n\nclass Delete extends MarkExtension {\n static disableExtraAttributes = true\n get name() {\n return 'mdDel' as const\n }\n createMarkSpec(): MarkExtensionSpec {\n return {\n attrs: commonAttrs,\n toDOM: () => ['del', 0],\n }\n }\n\n @keyBinding({ shortcut: 'mod-shift-s', command: 'toggleDelete' })\n shortcut(props: KeyBindingProps): boolean {\n return toggleInlineMark(this.name)(props)\n }\n}\n\nclass LinkText extends MarkExtension {\n static disableExtraAttributes = true\n get name() {\n return 'mdLinkText' as const\n }\n createMarkSpec(): MarkExtensionSpec {\n return {\n attrs: {\n ...commonAttrs,\n href: {\n default: '',\n },\n },\n toDOM: (mark) => [\n 'a',\n {\n href: mark.attrs.href,\n },\n 0,\n ],\n }\n }\n}\n\nclass LinkUri extends MarkExtension {\n static disableExtraAttributes = true\n get name() {\n return 'mdLinkUri' as const\n }\n createMarkSpec(): MarkExtensionSpec {\n return {\n spanning: false,\n attrs: commonAttrs,\n toDOM: () => ['a', { class: 'md-link' }, 0],\n }\n }\n}\n\nclass ImgText extends MarkExtension {\n static disableExtraAttributes = true\n get name() {\n return 'mdImgText' as const\n }\n createMarkSpec(): MarkExtensionSpec {\n return {\n spanning: false,\n attrs: commonAttrs,\n toDOM: () => ['span', { class: 'md-img-text' }, 0],\n }\n }\n}\n\ntype MfImgOptions = {\n handleViewImgSrcUrl?: (src: string) => Promise<string>\n}\n@extension<MfImgOptions>({\n defaultOptions: {\n handleViewImgSrcUrl: async (src: string) => src,\n },\n})\nclass ImgUri extends MarkExtension<MfImgOptions> {\n static disableExtraAttributes = true\n get name() {\n return 'mdImgUri' as const\n }\n createMarkSpec(): MarkExtensionSpec {\n return {\n spanning: false,\n attrs: {\n ...commonAttrs,\n key: {\n default: '',\n },\n href: {\n default: '',\n },\n },\n }\n }\n createNodeViews = (): NodeViewMethod => {\n return (mark): NodeView => {\n const innerContainer = document.createElement('span')\n\n const img = document.createElement('img')\n if (this.options.handleViewImgSrcUrl) {\n this.options.handleViewImgSrcUrl(mark.attrs.href).then((newHref) => {\n img.setAttribute('src', formatHref(newHref))\n })\n } else {\n img.setAttribute('src', formatHref(mark.attrs.href))\n }\n\n const outerContainer = document.createElement('span')\n outerContainer.appendChild(img)\n outerContainer.appendChild(innerContainer)\n outerContainer.setAttribute('class', 'md-img-uri')\n\n return { dom: outerContainer, contentDOM: innerContainer }\n }\n }\n}\n\nconst autoHideMarks: Record<string, true> = {\n mdMark: true,\n mdLinkUri: true,\n mdImgText: true,\n mdImgUri: true,\n mdHtmlInline: true\n}\n\nexport function isAutoHideMark(name: string): boolean {\n // This should be the fastest way based on my performance test.\n return autoHideMarks[name]\n}\n\ntype LineMarkExtensionOptions = {\n handleViewImgSrcUrl?: (src: string) => Promise<string>\n}\n\nexport const markExtensions = (options: LineMarkExtensionOptions = {}) => [\n new MetaKey(),\n new PlainText(),\n new Emphasis(),\n new Strong(),\n new CodeText(),\n new CodeSpace(),\n new Delete(),\n new LinkText(),\n new LinkUri(),\n new ImgText(),\n new ImgUri({\n handleViewImgSrcUrl: options.handleViewImgSrcUrl,\n }),\n new LineHtmlInlineExtension({\n handleViewImgSrcUrl: options.handleViewImgSrcUrl,\n }),\n]\nexport type LineMarkExtension = ReturnType<typeof markExtensions>[number]\nexport type LineMarkName = LineMarkExtension['name']\nexport type LineMarkAttrs = {\n depth: number\n\n first?: boolean\n last?: boolean\n\n href?: string\n\n htmlText?: string\n\n /**\n * to fix same attrs node only render once\n */\n key?: string\n}\n", "export function formatHref(location: string): string {\n if (isUnixFilePath(location) || isWindowsFilePath(location)) {\n return formatFileUrl(location)\n } else {\n return location\n }\n}\n\nfunction isUnixFilePath(location: string): boolean {\n return location.startsWith('/')\n}\n\nfunction isWindowsFilePath(location: string): boolean {\n return location.startsWith('\\\\') || /^[A-Z]{1,2}:/.test(location)\n}\n\nfunction formatFileUrl(filePath: string) {\n let pathName = filePath\n\n pathName = pathName.replace(/\\\\/g, '/')\n\n if (pathName[0] !== '/') {\n pathName = `/${pathName}`\n }\n\n return encodeURI(`file://${pathName}`).replace(/[?#]/g, encodeURIComponent)\n}\n", "import type { CommandFunction, CommandFunctionProps, ProsemirrorNode } from '@remirror/core'\nimport type { Transaction } from '@remirror/pm/state'\nimport { TextSelection } from '@remirror/pm/state'\n\nimport { updateRangeMarks } from './inline-mark-helpers'\n\ntype CreateInlineKeyBindingProps = {\n left: string\n right: string\n mark: ToggleableInlineMarkName\n}\n\nfunction findMarkIndex(\n textBlockNode: ProsemirrorNode,\n mark: string,\n fromIndex: number,\n toIndex: number,\n empty: boolean,\n): false | number {\n for (let index = fromIndex; index <= toIndex; index++) {\n if (hasMark(textBlockNode.maybeChild(index), mark)) {\n return index\n }\n }\n if (empty || fromIndex === toIndex) {\n if (\n hasMark(textBlockNode.maybeChild(fromIndex), 'mdMark') &&\n hasMark(textBlockNode.maybeChild(fromIndex - 1), mark)\n ) {\n return fromIndex - 1\n }\n\n if (\n hasMark(textBlockNode.maybeChild(toIndex), 'mdMark') &&\n hasMark(textBlockNode.maybeChild(toIndex + 1), mark)\n ) {\n return toIndex + 1\n }\n }\n\n return false\n}\n\nfunction deleteSimpleInlineMark({\n left,\n right,\n mark,\n}: CreateInlineKeyBindingProps): CommandFunction {\n return (props: CommandFunctionProps): boolean => {\n const { tr, dispatch, state } = props\n const { $from, $to, empty } = state.selection\n\n const textBlockNode = $from.parent\n const textBlockStart = $from.start()\n\n let fromIndex = $from.index()\n let toIndex = $to.index()\n\n // `$to` is between two text nodes and `toIndex` is pointing to the right text node.\n if ($to.textOffset === 0) {\n if (empty) {\n fromIndex = Math.max(fromIndex - 1, 0)\n } else if (toIndex > fromIndex) {\n toIndex--\n }\n }\n\n const existedMarkIndex = findMarkIndex(textBlockNode, mark, fromIndex, toIndex, empty)\n\n if (existedMarkIndex !== false) {\n let found = false\n for (let i = existedMarkIndex; i < textBlockNode.childCount; i++) {\n const textNode = textBlockNode.child(i)\n if (hasMark(textNode, 'mdMark') && textNode.text === right) {\n deleteTextBlockChild(tr, textBlockNode, textBlockStart, i)\n found = true\n }\n }\n for (let i = existedMarkIndex; i >= 0; i--) {\n const textNode = textBlockNode.child(i)\n if (hasMark(textNode, 'mdMark') && textNode.text === left) {\n deleteTextBlockChild(tr, textBlockNode, textBlockStart, i)\n found = true\n }\n }\n if (found) {\n if (dispatch) {\n updateRangeMarks(tr)\n dispatch(tr)\n }\n return true\n }\n }\n\n return false\n }\n}\n\nfunction addSimpleInlineMark({ left, right }: CreateInlineKeyBindingProps): CommandFunction {\n return (props: CommandFunctionProps): boolean => {\n const { tr, dispatch, state } = props\n const { $from, $to, anchor, head } = state.selection\n\n if (dispatch) {\n tr.insertText(right, $to.pos)\n tr.insertText(left, $from.pos)\n const offset = left.length\n tr.setSelection(TextSelection.create(tr.doc, anchor + offset, head + offset))\n updateRangeMarks(tr)\n dispatch(tr)\n }\n\n return true\n }\n}\n\nfunction toggleSimpleInlineMark({\n left,\n right,\n mark,\n}: CreateInlineKeyBindingProps): CommandFunction {\n return (props: CommandFunctionProps): boolean => {\n const { $from, $to } = props.state.selection\n\n if (!$from.sameParent($to) || !$from.parent.type.isTextblock) {\n return false\n }\n\n if (deleteSimpleInlineMark({ left, right, mark })(props)) {\n return true\n }\n\n if (addSimpleInlineMark({ left, right, mark })(props)) {\n return true\n }\n\n return false\n }\n}\n\n/** @public */\nexport type ToggleableInlineMarkName = 'mdStrong' | 'mdEm' | 'mdCodeText' | 'mdDel'\n\nexport function toggleInlineMark(mark: ToggleableInlineMarkName): CommandFunction {\n switch (mark) {\n case 'mdStrong':\n return toggleSimpleInlineMark({ mark, left: '**', right: '**' })\n case 'mdEm':\n return toggleSimpleInlineMark({ mark, left: '*', right: '*' })\n case 'mdCodeText':\n return toggleSimpleInlineMark({ mark, left: '`', right: '`' })\n case 'mdDel':\n return toggleSimpleInlineMark({ mark, left: '~~', right: '~~' })\n default:\n throwUnknownMarkError(mark)\n }\n}\n\nexport type ToggleInlineMark = typeof toggleInlineMark\n\nfunction throwUnknownMarkError(mark: never): never {\n throw new Error(`Unknown mark to toggle: ${mark}`)\n}\n\nfunction hasMark(node: ProsemirrorNode | null | undefined, mark: string): boolean {\n if (!node) {\n return false\n }\n\n return node.marks.some((m) => m.type.name === mark)\n}\n\nfunction deleteTextBlockChild(\n tr: Transaction,\n textBlockNode: ProsemirrorNode,\n textBlockStart: number,\n childIndex: number,\n): Transaction {\n let offset = textBlockStart\n for (let i = 0; i < childIndex; i++) {\n offset += textBlockNode.child(i).nodeSize\n }\n return tr.delete(offset, offset + textBlockNode.child(childIndex).nodeSize)\n}\n", "import type { EditorSchema, ProsemirrorNode } from '@remirror/pm'\nimport type { Node, Schema } from '@remirror/pm/model'\nimport type { Transaction } from '@remirror/pm/state'\nimport { Transform } from '@remirror/pm/transform'\nimport type { EditorView } from '@remirror/pm/view'\n\nimport type { MarkChunk } from '../../steps/batch-mark-step'\nimport { BatchSetMarkStep } from '../../steps/batch-mark-step'\nimport { iterNode, iterNodeRange } from '../../utils/iter-node'\nimport { fromInlineMarkdown } from './from-inline-markdown'\nimport { InlineDecorateType } from './inline-types'\n\nfunction parseTextBlock(schema: Schema, node: Node, startPos: number, output: MarkChunk[]): void {\n if (!node.textContent) {\n return\n }\n const tokens = fromInlineMarkdown(node.textContent)\n\n for (const token of tokens) {\n const expectedMarks = token.marks.map((markName) => {\n return schema.marks[markName].create(token.attrs)\n })\n output.push([startPos + token.start, startPos + token.end, expectedMarks])\n }\n}\n\nfunction parseNode(schema: EditorSchema, node: Node, startPos: number, output: MarkChunk[]): void {\n if (node.attrs.inlineDecorateType === InlineDecorateType.Ignore) {\n return\n }\n\n if (node.isTextblock) {\n parseTextBlock(schema, node, startPos, output)\n } else {\n node.forEach((child: Node, offset: number) => {\n parseNode(schema, child, startPos + offset + 1, output)\n })\n }\n}\n\nfunction updateNodeMarks(tr: Transform, node: Node, startPos: number, output: MarkChunk[]): void {\n if (!node.isTextblock) {\n for (const [child, offset] of iterNode(node)) {\n updateNodeMarks(tr, child, startPos + offset + 1, output)\n }\n } else {\n const schema = tr.doc.type.schema\n parseNode(schema, node, startPos, output)\n }\n}\n\nexport function initDocMarks(doc: ProsemirrorNode): ProsemirrorNode {\n const tr = new Transform(doc)\n const output: MarkChunk[] = []\n updateNodeMarks(tr, doc, 0, output)\n if (output.length) {\n tr.step(new BatchSetMarkStep(output))\n }\n return tr.doc\n}\n\nexport function applySelectionMarks(view: EditorView): void {\n if (view.isDestroyed) return\n\n const tr = view.state.tr\n tr.setMeta('addToHistory', false)\n if (updateRangeMarks(tr)) {\n view.dispatch(tr)\n }\n}\n\nexport function applyDocMarks(view: EditorView): void {\n if (view.isDestroyed) return\n\n const tr = view.state.tr\n if (updateRangeMarks(tr, true)) {\n view.dispatch(tr)\n }\n}\n\nexport function updateRangeMarks(tr: Transaction, forceUpdateAll?: boolean): boolean {\n tr.setMeta('APPLY_MARKS', true)\n\n const { $from, $to } = tr.selection\n const range = $from.blockRange($to)\n\n const output: MarkChunk[] = []\n if (!range || forceUpdateAll) {\n updateNodeMarks(tr, tr.doc, 0, output)\n } else {\n for (const [child, pos] of iterNodeRange(range)) {\n updateNodeMarks(tr, child, pos, output)\n }\n }\n if (output.length) {\n tr.step(new BatchSetMarkStep(output))\n }\n\n if (tr.docChanged) {\n return true\n }\n return false\n}\n", "import type { Node, Schema } from '@remirror/pm/model'\nimport { Fragment, Mark, NodeRange, Slice } from '@remirror/pm/model'\nimport { Step, StepResult } from '@remirror/pm/transform'\n\nimport { ReplaceDocStep } from \"./replace-doc-step\"\nimport { excludeHtmlInlineNodes } from '@/transform/markdown-it-html-inline'\n\nexport type MarkChunk = [from: number, to: number, marks: Mark[]]\n\n// Replace the marks of multiple ranges in bulk. This is much more efficient\n// than creating multiple AddMarkStep and RemoveMarkStep, because it only needs\n// to go through the document once to add/remove the marks.\nexport class BatchSetMarkStep extends Step {\n constructor(readonly chunks: MarkChunk[]) {\n if (chunks.length === 0) {\n throw new RangeError('BatchSetMarkStep: at least one chunk is required')\n }\n\n let pos = 0\n for (const [from, to] of chunks) {\n if (pos > from || from > to) {\n throw new RangeError('BatchSetMarkStep: chunks must be sorted')\n }\n pos = to\n }\n\n super()\n }\n\n apply(doc: Node): StepResult {\n const chunks = this.chunks\n\n const from = chunks[0][0]\n const to = chunks[chunks.length - 1][1]\n\n const $from = doc.resolve(from)\n const $to = doc.resolve(to)\n\n const depth = $from.sharedDepth(to)\n const { start, parent } = new NodeRange($from, $to, depth)\n\n // We use the `start` from `NodeRange` to make sure that the\n // `oldSlice.openStart` is 0, so that we can calulate the position\n // of nodes correctly.\n const oldSlice = doc.slice(start, to)\n\n let chunkIndex = 0,\n nodeHi: number,\n chunkLo: number,\n chunkHi: number,\n lo: number,\n hi: number,\n mark: Mark,\n expectedMarks: readonly Mark[],\n marks: readonly Mark[],\n node: Node | null,\n nextNode: Node | null\n\n const fragment = mapFragment(\n oldSlice.content,\n start,\n parent,\n (inlineNode: Node, parent: Node, nodeLo: number) => {\n node = inlineNode\n\n const mapped: Node[] = []\n\n while (node && chunkIndex < chunks.length) {\n nodeHi = nodeLo + node.nodeSize\n ;[chunkLo, chunkHi, expectedMarks] = chunks[chunkIndex]\n\n // Invalid chunk. Skip it.\n if (chunkLo >= chunkHi) {\n chunkIndex++\n continue\n }\n\n // chunk and node do not overlap. Check the next node.\n if (chunkLo >= nodeHi) {\n mapped.push(node)\n break\n }\n\n // chunk and node do not overlap. Check the next chunk.\n if (nodeLo >= chunkHi) {\n chunkIndex++\n continue\n }\n\n // chunk and node overlap in the range [lo, hi].\n lo = Math.max(chunkLo, nodeLo)\n hi = Math.min(chunkHi, nodeHi)\n\n if (lo > nodeLo) {\n // The start part of the node is not been covered.\n mapped.push(node.cut(0, lo - nodeLo))\n node = node.cut(lo - nodeLo)\n nodeLo = lo\n }\n if (hi < nodeHi) {\n // The end part of the node is not been covered.\n ;[node, nextNode] = [node.cut(0, hi - nodeLo), node.cut(hi - nodeLo)]\n nodeHi = hi\n }\n\n marks = node.marks\n for (mark of marks) {\n if (!mark.isInSet(expectedMarks)) {\n marks = mark.removeFromSet(marks)\n }\n }\n for (mark of expectedMarks) {\n if (!mark.isInSet(marks) && parent?.type.allowsMarkType(mark.type)) {\n marks = mark.addToSet(marks)\n }\n }\n\n node = node.mark(marks)\n mapped.push(node)\n\n nodeLo += node.nodeSize\n node = nextNode\n nextNode = null\n }\n return mapped\n },\n )\n\n return StepResult.fromReplace(\n doc,\n start,\n to,\n new Slice(fragment, oldSlice.openStart, oldSlice.openEnd),\n )\n }\n\n invert(doc: Node): Step {\n return new ReplaceDocStep(doc)\n }\n\n map(): Step | null {\n return null\n }\n\n merge(): Step | null {\n return null\n }\n\n toJSON(): any {\n const chunks = this.chunks.map((chunk) => [\n chunk[0],\n chunk[1],\n chunk[2].map((mark: Mark) => mark.toJSON()),\n ])\n return { stepType: 'batchSetMark', chunks }\n }\n\n static fromJSON(schema: Schema, json: any): BatchSetMarkStep {\n return new BatchSetMarkStep(\n json.chunks.map((chunk: any) => {\n return [chunk[0], chunk[1], chunk[2].map((mark: any) => Mark.fromJSON(schema, mark))]\n }),\n )\n }\n}\n\ntry {\n Step.jsonID('batchSetMark', BatchSetMarkStep)\n} catch (error) {}\n\nfunction mapFragment(\n fragment: Fragment,\n start: number,\n parent: Node,\n fn: (inlineNode: Node, textBlockNode: Node, start: number) => Node[],\n): Fragment {\n const mapped: Node[] = []\n let offset = start\n\n for (let i = 0; i < fragment.childCount; i++) {\n let child = fragment.child(i)\n if (child.content.size) {\n child = child.copy(mapFragment(child.content, offset + (child.isLeaf ? 0 : 1), child, fn))\n }\n if (child.isInline) {\n mapped.push(...fn(child, parent, offset))\n } else {\n mapped.push(child)\n }\n\n offset += excludeHtmlInlineNodes.includes(child.type.name) ? 0 : child.nodeSize\n }\n return Fragment.fromArray(mapped)\n}\n", "import type { Node, Schema } from '@remirror/pm/model'\nimport { Step, StepMap, StepResult } from '@remirror/pm/transform'\n\n// Replace the document with a new document.\nexport class ReplaceDocStep extends Step {\n constructor(readonly doc: Node) {\n super()\n }\n\n apply(doc: Node) {\n return StepResult.ok(doc)\n }\n\n getMap() {\n return StepMap.empty\n }\n\n invert(doc: Node) {\n return new ReplaceDocStep(doc)\n }\n\n map() {\n return null\n }\n\n merge(other: Step) {\n return null\n }\n\n toJSON(): any {\n return { stepType: 'replaceDoc', doc: this.doc.toJSON() }\n }\n\n /// @internal\n static fromJSON(schema: Schema, json: any) {\n const doc = schema.nodeFromJSON(json.doc)\n return new ReplaceDocStep(doc)\n }\n}\n\ntry {\n Step.jsonID('replaceDoc', ReplaceDocStep)\n} catch (error) {\n \n}\n", "import type { ProsemirrorNode } from \"@remirror/core\"\nimport type { NodeRange } from \"@remirror/pm/model\"\n\n/**\n * Iterate all children from a parent node. Yield child node, its\n * offset into this parent node and its index.\n *\n * Same function as node.forEach but with two benefits by using\n * ES6 generator:\n * 1. better readability\n * 2. ability to break the loop\n *\n * @param node The parent node\n * @yields {[node, offset, index]}\n */\nexport function* iterNode(node: ProsemirrorNode): Generator<[ProsemirrorNode, number, number]> {\n const fragment = node.content\n for (let index = 0, offset = 0; index < fragment.childCount; index++) {\n const child = fragment.child(index)\n yield [child, offset, index]\n offset += child.nodeSize\n }\n}\n\n/**\n * Iterage all children from a NodeRange object. Yield each child node\n * and its (absolute) position\n *\n * @param range\n * @yields {[node, offset]}\n */\nexport function* iterNodeRange(range: NodeRange): Generator<[ProsemirrorNode, number]> {\n let pos = range.start + 1\n for (const [child, , index] of iterNode(range.parent)) {\n if (index < range.startIndex) continue\n else if (index >= range.endIndex) break\n yield [child, pos]\n pos += child.nodeSize\n }\n}\n", "import type mdast from 'mdast'\nimport type { Options as FromMarkdownOptions } from 'mdast-util-from-markdown'\nimport { fromMarkdown } from 'mdast-util-from-markdown'\nimport { gfmAutolinkLiteralFromMarkdown } from 'mdast-util-gfm-autolink-literal'\nimport { gfmStrikethroughFromMarkdown } from 'mdast-util-gfm-strikethrough'\nimport { gfmAutolinkLiteral } from 'micromark-extension-gfm-autolink-literal'\nimport { gfmStrikethrough } from 'micromark-extension-gfm-strikethrough'\nimport { nanoid } from 'nanoid'\nimport voidElements from 'void-elements'\nimport type { LineMarkName } from './inline-mark-extensions'\nimport type { InlineToken } from './inline-types'\nimport { cloneDeep } from 'lodash'\nimport { getTagName, isClosingTag } from '../../utils/html'\nimport { needSplitInlineHtmlTokenTags } from '@/transform/markdown-it-html-inline'\n\ngfmAutolinkLiteralFromMarkdown.transforms = []\n\nfunction fixMarkNames(marks: LineMarkName[]): LineMarkName[] {\n if (marks.length <= 1) return marks\n if (marks.includes('mdMark')) return ['mdMark']\n if (marks.includes('mdCodeText')) return ['mdCodeText']\n if (marks.includes('mdText')) return marks.filter((x) => x !== 'mdText')\n return marks\n}\n\nfunction flatText(mdastToken: mdast.Text, depth: number): InlineToken[] {\n return [\n {\n marks: ['mdText'],\n attrs: { depth, first: true, last: true },\n start: mdastToken.position!.start.offset!,\n end: mdastToken.position!.end.offset!,\n },\n ]\n}\n\nfunction flatStrong(mdastToken: mdast.Strong, depth: number): InlineToken[] {\n const inlineTokens: InlineToken[] = [\n {\n marks: ['mdMark'],\n attrs: { depth, first: true },\n start: mdastToken.position!.start.offset!,\n end: mdastToken.position!.start.offset! + 2,\n },\n ]\n for (const childMdastToken of mdastToken.children) {\n for (const inlineToken of flatPhrasingContent(childMdastToken, depth + 1)) {\n inlineToken.marks.push('mdStrong')\n inlineTokens.push(inlineToken)\n }\n }\n inlineTokens.push({\n marks: ['mdMark'],\n attrs: { depth, last: true },\n start: mdastToken.position!.end.offset! - 2,\n end: mdastToken.position!.end.offset!,\n })\n return inlineTokens\n}\n\nfunction flatEmphasis(mdastToken: mdast.Emphasis, depth: number): InlineToken[] {\n const inlineTokens: InlineToken[] = [\n {\n marks: ['mdMark'],\n attrs: { depth, first: true },\n start: mdastToken.position!.start.offset!,\n end: mdastToken.position!.start.offset! + 1,\n },\n ]\n for (const childMdastToken of mdastToken.children) {\n for (const inlineToken of flatPhrasingContent(childMdastToken, depth + 1)) {\n inlineToken.marks.push('mdEm')\n inlineTokens.push(inlineToken)\n }\n }\n inlineTokens.push({\n marks: ['mdMark'],\n attrs: { depth, last: true },\n start: mdastToken.position!.end.offset! - 1,\n end: mdastToken.position!.end.offset!,\n })\n return inlineTokens\n}\n\nfunction flatDelete(mdastToken: mdast.Delete, depth: number): InlineToken[] {\n const inlineTokens: InlineToken[] = [\n {\n marks: ['mdMark'],\n attrs: { depth, first: true },\n start: mdastToken.position!.start.offset!,\n end: mdastToken.position!.start.offset! + 2,\n },\n ]\n for (const childMdastToken of mdastToken.children) {\n for (const inlineToken of flatPhrasingContent(childMdastToken, depth + 1)) {\n inlineToken.marks.push('mdDel')\n inlineTokens.push(inlineToken)\n }\n }\n inlineTokens.push({\n marks: ['mdMark'],\n attrs: { depth, last: true },\n start: mdastToken.position!.end.offset! - 2,\n end: mdastToken.position!.end.offset!,\n })\n return inlineTokens\n}\n\nfunction flatInlineCode(mdastToken: mdast.InlineCode, depth: number): InlineToken[] {\n return [\n {\n marks: ['mdMark'],\n attrs: { depth, first: true },\n start: mdastToken.position!.start.offset!,\n end: mdastToken.position!.start.offset! + 1,\n },\n {\n marks: ['mdCodeText'],\n attrs: { depth },\n start: mdastToken.position!.start.offset! + 1,\n end: mdastToken.position!.end.offset! - 1,\n },\n {\n marks: ['mdMark'],\n attrs: { depth, last: true },\n start: mdastToken.position!.end.offset! - 1,\n end: mdastToken.position!.end.offset!,\n },\n ]\n}\n\nfunction flatImage(mdastToken: mdast.Image, depth: number): InlineToken[] {\n return [\n {\n marks: ['mdImgUri'],\n attrs: { depth, first: true, last: true, href: mdastToken.url, key: nanoid() },\n start: mdastToken.position!.start.offset!,\n end: mdastToken.position!.end.offset!,\n },\n ]\n}\n\nfunction flatAutoLinkLiteral(mdastToken: mdast.Link, depth: number): InlineToken[] {\n return [\n {\n marks: ['mdLinkText'],\n attrs: { depth, first: true, last: true, href: mdastToken.url },\n start: mdastToken.position!.start.offset!,\n end: mdastToken.position!.end.offset!,\n },\n ]\n}\n\nfunction flatLink(mdastToken: mdast.Link, depth: number): InlineToken[] {\n const parentStartPos = mdastToken.position!.start.offset!\n const parentEndPos = mdastToken.position!.end.offset!\n\n if (mdastToken.children.length === 0) {\n // process [](https://example.com)\n return [\n {\n marks: ['mdText'],\n attrs: { depth, first: true, last: true },\n start: mdastToken.position!.start.offset!,\n end: mdastToken.position!.start.offset! + 2,\n },\n {\n marks: ['mdMark'],\n attrs: { depth },\n start: mdastToken.position!.start.offset! + 2,\n end: parentEndPos,\n }\n ]\n }\n const childrenStartPos = mdastToken.children[0].position!.start.offset!\n const childrenEndPos = mdastToken.children[mdastToken.children.length - 1].position!.end.offset!\n\n if (parentStartPos === childrenStartPos && parentEndPos === childrenEndPos) {\n return flatAutoLinkLiteral(mdastToken, depth)\n }\n\n const inlineTokens: InlineToken[] = [\n // match \"<\" for autolinks or \"[\" for links\n {\n marks: ['mdMark'],\n attrs: { depth, first: true },\n start: mdastToken.position!.start.offset!,\n end: mdastToken.position!.start.offset! + 1,\n },\n ]\n for (const childMdastToken of mdastToken.children) {\n for (const inlineToken of flatPhrasingContent(childMdastToken, depth + 1)) {\n inlineToken.marks.push('mdLinkText')\n inlineToken.attrs.href = mdastToken.url\n inlineTokens.push(inlineToken)\n }\n }\n\n if (childrenEndPos + 2 < parentEndPos) {\n inlineTokens.push(\n // match \"](\" for links\n {\n marks: ['mdMark'],\n attrs: { depth },\n start: childrenEndPos,\n end: childrenEndPos + 2,\n },\n // match the content between \"(\" and \")\" for links\n {\n marks: ['mdLinkUri'], // TODO: it's not only uri\n attrs: { depth },\n start: childrenEndPos + 2,\n end: parentEndPos - 1,\n },\n )\n }\n\n // match \">\" for autolinks or \"]\" for links\n inlineTokens.push({\n marks: ['mdMark'],\n attrs: { depth, last: true },\n start: parentEndPos - 1,\n end: parentEndPos,\n })\n return inlineTokens\n}\n\n// Make a tree structural mdast `PhrasingContent` object into a flat `InlineToken` array.\nfunction flatPhrasingContent(mdastToken: mdast.PhrasingContent, depth: number): InlineToken[] {\n switch (mdastToken.type) {\n case 'text':\n return flatText(mdastToken, depth)\n case 'strong':\n return flatStrong(mdastToken, depth)\n case 'emphasis':\n return flatEmphasis(mdastToken, depth)\n case 'delete':\n return flatDelete(mdastToken, depth)\n case 'inlineCode':\n return flatInlineCode(mdastToken, depth)\n case 'html':\n return []\n case 'break':\n return []\n case 'image':\n return flatImage(mdastToken, depth)\n case 'imageReference':\n return []\n case 'footnote':\n return []\n case 'footnoteReference':\n return []\n case 'link':\n return flatLink(mdastToken, depth)\n case 'linkReference':\n return []\n default:\n console.warn('unknow mdast token:', mdastToken)\n return []\n }\n}\n\ntype PhrasingContentType = mdast.PhrasingContent['type']\n\nconst phrasingContentTypes: Record<PhrasingContentType, true> = {\n delete: true,\n text: true,\n emphasis: true,\n strong: true,\n html: true,\n inlineCode: true,\n break: true,\n image: true,\n imageReference: true,\n footnote: true,\n footnoteReference: true,\n link: true,\n linkReference: true,\n}\n\nconst fromMarkdownOptions: FromMarkdownOptions = {\n extensions: [\n {\n disable: {\n null: [\n 'blockQuote',\n 'characterEscape',\n 'characterReference',\n 'codeFenced',\n 'codeIndented',\n 'definition',\n 'headingAtx',\n 'htmlFlow',\n 'list',\n 'thematicBreak',\n ],\n },\n },\n gfmStrikethrough({ singleTilde: false }),\n gfmAutolinkLiteral,\n ],\n mdastExtensions: [gfmStrikethroughFromMarkdown, gfmAutolinkLiteralFromMarkdown],\n}\n\nfunction parseInlineMarkdown(text: string): mdast.PhrasingContent[] {\n try {\n const root: mdast.Root = fromMarkdown(text, fromMarkdownOptions)\n if (root.children.length === 0) {\n return []\n }\n if (root.children.length !== 1) {\n throw Error(`root.children has ${root.children.length} children`)\n }\n const paragraph = root.children[0]\n if (paragraph.type !== 'paragraph') {\n throw Error(`unknow child type ${paragraph.type}`)\n }\n\n for (const child of paragraph.children) {\n if (!phrasingContentTypes[child.type]) {\n throw Error(`got unknow phrasingContent token: ${JSON.stringify(child)}`)\n }\n }\n return paragraph.children\n } catch (error) {\n console.warn(`failed to parse inline markdown text ${JSON.stringify(text)}: ${error}`)\n }\n return []\n}\n\nfunction fixTokensMarkNames(tokens: InlineToken[]) {\n for (const inlineToken of tokens) {\n if (inlineToken.end - inlineToken.start === 0) {\n continue // Prosemirror doesn't allow empty text node\n }\n inlineToken.marks = fixMarkNames(inlineToken.marks)\n }\n return tokens\n}\n\nfunction parseMdInline(phrasingContents: mdast.PhrasingContent[], depth = 1) {\n const inlineTokens: InlineToken[] = []\n\n for (const phrasingContent of phrasingContents) {\n const tokens = flatPhrasingContent(phrasingContent, depth)\n inlineTokens.push(...fixTokensMarkNames(tokens))\n }\n\n return inlineTokens\n}\n\nfunction mergePhrasingContents(\n phrasingContents: mdast.HTML[],\n startIndex: number,\n endIndex: number,\n): MdAstHtml[] {\n const merged = cloneDeep(phrasingContents[startIndex]) as MdAstHtml\n\n for (let i = startIndex + 1; i <= endIndex; i++) {\n merged.value += phrasingContents[i].value || ''\n merged.position!.end = phrasingContents[i].position!.end\n merged.complete = true\n }\n\n phrasingContents.splice(startIndex, endIndex - startIndex + 1, merged)\n return phrasingContents as MdAstHtml[]\n}\n\nfunction getMergeArr(phrasingContents: MdAstHtml[]) {\n const unCloseedHtmlStack: HTMLNode[] = []\n const mergeArr: HTMLNode[][] = []\n for (let i = 0; i < phrasingContents.length; i++) {\n const phrasingContent = phrasingContents[i]\n if (phrasingContent.type === 'html') {\n const tagName = getTagName(phrasingContent.value)\n const htmlNode = {\n tag: tagName,\n voidElement: !!voidElements[tagName],\n isClosingTag: isClosingTag(phrasingContent.value),\n index: i,\n }\n\n if (!htmlNode.voidElement) {\n if (!htmlNode.isClosingTag) {\n unCloseedHtmlStack.push(htmlNode)\n } else if (unCloseedHtmlStack[unCloseedHtmlStack.length - 1]?.tag === htmlNode.tag) {\n if (unCloseedHtmlStack.length >= 1) {\n mergeArr.push([unCloseedHtmlStack.pop()!, htmlNode])\n phrasingContent.complete = true\n }\n }\n } else {\n phrasingContent.complete = true\n }\n }\n }\n\n for (let i = 0; i < mergeArr.length; i++) {\n const merge = mergeArr[i]\n const startIndex = merge[0].index\n const endIndex = merge[1].index\n const parentNode = mergeArr.findIndex(\n (item) => item[0].index < startIndex && item[1].index > endIndex,\n )\n if (parentNode >= 0) {\n mergeArr.splice(i, 1)\n i--\n }\n }\n\n return mergeArr\n}\n\nfunction mergeHtmlPhrasingContents(phrasingContents: MdAstHtml[]) {\n const mergeArr = getMergeArr(phrasingContents)\n let offset = 0\n mergeArr.forEach((merge) => {\n const startIndex = merge[0].index + offset\n const endIndex = merge[1].index + offset\n mergePhrasingContents(phrasingContents, startIndex, endIndex)\n offset += startIndex - endIndex\n })\n}\nfunction flatHTMLInlineCode(phrasingContents: MdAstHtml[], depth = 1) {\n mergeHtmlPhrasingContents(phrasingContents)\n\n const inlineTokens: InlineToken[] = []\n phrasingContents.forEach((phrascontent) => {\n if (phrascontent.type === 'html') {\n if (phrascontent.complete) {\n inlineTokens.push({\n marks: ['mdHtmlInline'],\n attrs: {\n depth: 1,\n htmlText: phrascontent.value,\n key: nanoid(),\n first: true,\n last: true,\n },\n start: phrascontent.position!.start.offset!,\n end: phrascontent.position!.end.offset!,\n })\n } else {\n inlineTokens.push({\n marks: ['mdText'],\n attrs: { depth, first: true, last: true },\n start: phrascontent.position!.start.offset!,\n end: phrascontent.position!.end.offset!,\n })\n }\n } else {\n const tokens = flatPhrasingContent(phrascontent, depth)\n inlineTokens.push(...fixTokensMarkNames(tokens))\n }\n })\n\n return inlineTokens\n}\n\nfunction hasHtmlToken(mdastToken: mdast.PhrasingContent[]) {\n for (const token of mdastToken) {\n if (token.type === 'html' && !needSplitInlineHtmlTokenTags.includes(getTagName(token.value))) {\n return true\n }\n }\n return false\n}\n\nexport function fromInlineMarkdown(text: string): InlineToken[] {\n const phrasingContents = parseInlineMarkdown(text)\n\n if (hasHtmlToken(phrasingContents)) {\n return flatHTMLInlineCode(phrasingContents as MdAstHtml[])\n }\n\n return parseMdInline(phrasingContents)\n}\n\ntype MdAstHtml = {\n complete?: boolean\n value: string\n} & mdast.HTML\n\ntype HTMLNode = {\n tag: string\n voidElement: boolean\n isClosingTag: boolean\n index: number\n}\n", "import { isImageElement } from '@/utils/html'\nimport type { MarkExtensionSpec, NodeViewMethod } from 'remirror'\nimport { MarkExtension, extension } from 'remirror'\n\ntype LineHtmlInlineExtensionOptions = {\n handleViewImgSrcUrl?: (src: string) => Promise<string>\n}\n\n@extension<LineHtmlInlineExtensionOptions>({\n defaultOptions: {\n handleViewImgSrcUrl: async (src: string) => src,\n },\n})\nexport class LineHtmlInlineExtension extends MarkExtension<LineHtmlInlineExtensionOptions> {\n static disableExtraAttributes = true\n\n get name() {\n return 'mdHtmlInline' as const\n }\n\n createMarkSpec(): MarkExtensionSpec {\n return {\n attrs: {\n depth: { default: 0 },\n key: {\n default: '',\n },\n htmlText: {\n default: '',\n },\n },\n toDOM: (mark) => [\n 'span',\n {\n ...mark.attrs,\n },\n 0,\n ],\n }\n }\n\n createNodeViews(): NodeViewMethod | Record<string, NodeViewMethod> {\n return (node) => {\n const container = document.createElement('span')\n\n const domParser = new DOMParser()\n const doc = domParser.parseFromString(node.attrs.htmlText || '', 'text/html')\n\n doc.body.childNodes.forEach((child) => {\n if (isImageElement(child) && child.src && this.options.handleViewImgSrcUrl) {\n let targetUrl = child.src\n \n if (child.src.includes(location.origin)) {\n targetUrl = child.src.split(location.origin)[1]\n }\n\n this.options.handleViewImgSrcUrl(targetUrl).then((newHref) => {\n child.src = newHref\n })\n }\n container.appendChild(child)\n })\n\n const contentDom = document.createElement('span')\n container.appendChild(contentDom)\n container.setAttribute('key', node.attrs.key)\n contentDom.setAttribute('class', 'md-html-inline')\n\n return {\n dom: container,\n contentDOM: contentDom,\n }\n }\n }\n}\n", "import type { Transaction } from '@remirror/pm/state'\nimport type { EditorView } from '@remirror/pm/view'\n\nimport { applySelectionMarks } from './inline-mark-helpers'\nimport { PlainExtension } from 'remirror'\n\nexport class LineInlineMarkExtension extends PlainExtension {\n get name() {\n return 'inlineMark' as const\n }\n\n createPlugin() {\n let timeoutId: ReturnType<typeof setTimeout> | null = null\n\n const debounceApplyMarks = (view: EditorView): void => {\n if (timeoutId) {\n clearTimeout(timeoutId)\n }\n timeoutId = setTimeout(() => {\n applySelectionMarks(view)\n timeoutId = null\n }, 100)\n }\n\n let view: EditorView | null = null\n\n return {\n appendTransaction: (\n transactions: readonly Transaction[],\n ): Transaction | null | undefined => {\n let shouldUpdate = false\n\n for (const tr of transactions) {\n if (tr.docChanged && !tr.getMeta('APPLY_MARKS')) {\n shouldUpdate = true\n break\n }\n }\n\n if (shouldUpdate && view && !view.isDestroyed) {\n debounceApplyMarks(view)\n }\n return \n },\n \n view: (editorView: EditorView | null) => {\n view = editorView\n return {}\n },\n }\n }\n}\n", "import type {\n ApplySchemaAttributes,\n KeyBindings,\n NodeExtensionSpec,\n NodeSpecOverride,\n} from '@remirror/core'\nimport { convertCommand, findParentNodeOfType } from '@remirror/core'\nimport { HeadingExtension } from 'remirror/extensions'\nimport { setBlockType } from '@remirror/pm/commands'\nimport type { Schema } from '@remirror/pm/model'\nimport type Token from 'markdown-it/lib/token'\n\nimport type { NodeSerializerOptions } from '../../transform'\nimport { ParserRuleType } from '../../transform'\n\nexport class LineHeadingExtension extends HeadingExtension {\n createNodeSpec(extra: ApplySchemaAttributes, override: NodeSpecOverride): NodeExtensionSpec {\n return {\n ...super.createNodeSpec(extra, override),\n content: 'text*', // Disallow hard breaks in headings\n }\n }\n\n createKeymap() {\n const keys: KeyBindings = {\n Backspace: ({ state, dispatch }) => {\n const { selection } = state\n\n // If the selection is not empty, return false and let other extension (ie: BaseKeymapExtension) to do\n // the deleting operation.\n if (!selection.empty) {\n return false\n }\n\n const parent = findParentNodeOfType({ types: this.type, selection })\n if (parent?.start !== selection.from) {\n return false\n }\n\n const tr = state.tr.setBlockType(\n parent.start,\n parent.start,\n (state.schema as Schema).nodes.paragraph,\n )\n if (dispatch) {\n dispatch(tr)\n }\n return true\n },\n }\n\n this.options.levels.forEach((level) => {\n keys[`mod-${level}`] = convertCommand(setBlockType(this.type, { level }))\n })\n\n return keys\n }\n\n fromMarkdown() {\n return [\n {\n type: ParserRuleType.block,\n token: 'heading',\n node: this.name,\n hasOpenClose: true,\n getAttrs: (tok: Token) => ({ level: +tok.tag.slice(1) }),\n },\n ] as const\n }\n\n toMarkdown({ state, node }: NodeSerializerOptions) {\n state.write(state.repeat('#', node.attrs.level) + ' ')\n state.renderInline(node)\n state.closeBlock(node)\n }\n}\n", "import type { ApplySchemaAttributes, NodeExtensionSpec, NodeSpecOverride } from \"@remirror/core\"\nimport { ParagraphExtension } from \"remirror/extensions\"\n\nimport type { NodeSerializerOptions} from \"../../transform\"\nimport { ParserRuleType } from \"../../transform\"\n\nexport class LineParagraphExtension extends ParagraphExtension {\n createNodeSpec(extra: ApplySchemaAttributes, override: NodeSpecOverride): NodeExtensionSpec {\n const spec = super.createNodeSpec(extra, override)\n // @ts-expect-error: remirror needs to be fixed for this to work\n return { ...spec, whitespace: \"pre\" }\n }\n\n fromMarkdown() {\n return [\n {\n type: ParserRuleType.block,\n token: \"paragraph\",\n node: this.name,\n hasOpenClose: true,\n },\n ] as const\n }\n\n toMarkdown({ state, node }: NodeSerializerOptions) {\n state.renderInline(node)\n state.closeBlock(node)\n }\n}\n", "import { TextExtension } from \"remirror/extensions\"\nimport type Token from \"markdown-it/lib/token\"\n\nimport type { NodeSerializerOptions} from \"../../transform\"\nimport { ParserRuleType } from \"../../transform\"\n\nexport class LineTextExtension extends TextExtension {\n fromMarkdown() {\n return [\n {\n type: ParserRuleType.text,\n token: \"text\",\n getText: (tok: Token) => tok.content,\n },\n {\n type: ParserRuleType.text,\n token: \"inline\",\n getText: (tok: Token) => tok.content,\n },\n {\n type: ParserRuleType.text,\n token: \"softbreak\",\n getText: (tok: Token) => \"\\n\",\n },\n ] as const\n }\n\n toMarkdown({ state, node }: NodeSerializerOptions) {\n state.text(node.text || \"\")\n }\n}\n", "import type { ProsemirrorNode } from '@remirror/core'\nimport { isString } from '@remirror/core'\nimport type Token from 'markdown-it/lib/token'\nimport type { ListAttributes } from 'remirror-extension-flat-list'\nimport { ListExtension } from 'remirror-extension-flat-list'\nimport type { MarkdownParseState, NodeSerializerOptions } from '../../transform'\nimport { ParserRuleType } from '../../transform'\nimport type { NodeSerializerSpec, ParserRule } from '../../transform'\n\nexport abstract class MarkdownNodeExtension {\n abstract fromMarkdown: () => readonly ParserRule[]\n abstract toMarkdown: NodeSerializerSpec\n}\n\nexport class LineListExtension extends ListExtension implements MarkdownNodeExtension {\n public fromMarkdown() {\n return [\n {\n type: ParserRuleType.free,\n token: 'list_item_open',\n handler: (state: MarkdownParseState): void => {\n switch (state.topContext()) {\n case 'ordered_list':\n state.openNode(this.type, { kind: 'ordered' } satisfies ListAttributes)\n break\n case 'bullet_list':\n state.openNode(this.type, { kind: 'bullet' } satisfies ListAttributes)\n break\n default:\n throw new Error('unknown context')\n }\n },\n },\n {\n type: ParserRuleType.free,\n token: 'list_checkbox',\n handler: (state: MarkdownParseState, tok: Token) => {\n const parent = state.stack[state.stack.length - 1]\n if (parent?.type.name === 'list') {\n const checked: null | string | boolean = tok.attrGet('checked')\n const attrs: ListAttributes = { kind: 'task', checked: isString(checked) || !!checked }\n parent.attrs = attrs\n } else {\n console.warn(`expect list but got ${parent?.type.name}`)\n }\n },\n },\n {\n type: ParserRuleType.free,\n token: 'list_item_close',\n handler: (state: MarkdownParseState): void => {\n state.closeNode()\n },\n },\n {\n type: ParserRuleType.context,\n token: 'bullet_list',\n context: 'bullet_list',\n },\n {\n type: ParserRuleType.context,\n token: 'ordered_list',\n context: 'ordered_list',\n },\n ] as const\n }\n\n public toMarkdown({ state, node, counter }: NodeSerializerOptions) {\n const attrs = node.attrs as ListAttributes\n let firstDelim = ''\n if (attrs.kind === 'ordered') {\n firstDelim = `${counter}. `\n } else if (attrs.kind === 'task') {\n firstDelim = attrs.checked ? '- [x] ' : '- [ ] '\n } else if (attrs.kind === 'bullet') {\n firstDelim = '- '\n }\n\n state.wrapBlock(' '.repeat(firstDelim.length), firstDelim, node, () =>\n state.renderContent(node),\n )\n }\n}\n\nexport function isOrderedListNode(node: ProsemirrorNode): boolean {\n return node.type.name === 'list' && (node.attrs as ListAttributes).kind === 'ordered'\n}\n", "import { BlockquoteExtension } from \"remirror/extensions\"\n\nimport type { NodeSerializerOptions} from \"../../transform\"\nimport { ParserRuleType } from \"../../transform\"\n\nexport class LineBlockquoteExtension extends BlockquoteExtension {\n public fromMarkdown() {\n return [\n {\n type: ParserRuleType.block,\n token: \"blockquote\",\n node: this.name,\n hasOpenClose: true,\n },\n ] as const\n }\n\n public toMarkdown({ state, node }: NodeSerializerOptions) {\n state.wrapBlock(\"> \", null, node, () => state.renderContent(node))\n }\n}\n", "import { chainCommands, convertCommand } from '@remirror/core'\nimport { HardBreakExtension } from 'remirror/extensions'\nimport { baseKeymap, exitCode } from '@remirror/pm/commands'\n\nimport type { NodeSerializerOptions } from '../../transform'\n\nconst needUseBrNodeNames = ['tableCell']\n\nexport class LineHardBreakExtension extends HardBreakExtension {\n fromMarkdown() {\n return []\n }\n\n toMarkdown({ state, node, parent, index }: NodeSerializerOptions) {\n for (let i = index + 1; i < parent.childCount; i++)\n if (parent.child(i).type != node.type) {\n state.write('\\n')\n return\n }\n }\n\n createKeymap() {\n const disallowBreakNodes = new Set(['heading'])\n\n const enterCommand = convertCommand(baseKeymap.Enter)\n\n const command = chainCommands(convertCommand(exitCode), (params) => {\n const { state, tr, dispatch } = params\n const { $from, $to, from, to } = state.selection\n const canReplace =\n !disallowBreakNodes.has($from.parent.type.name) &&\n !disallowBreakNodes.has($to.parent.type.name)\n const nodeName = $from.parent.type.name\n if (canReplace) {\n const schema = state.schema\n\n if (needUseBrNodeNames.includes(nodeName)) {\n dispatch?.(tr.replaceRangeWith(from, to, schema.text('<br/>\\n')))\n } else {\n dispatch?.(tr.replaceRangeWith(from, to, schema.text('\\n')))\n }\n return true\n } else {\n // If the parent doesn't allow HardBreak type (Heading for example), then fall back to `Enter` command\n return enterCommand(params)\n }\n })\n\n return {\n 'Mod-Enter': command,\n 'Shift-Enter': command,\n }\n }\n}\n", "import { HorizontalRuleExtension } from 'remirror/extensions'\n\nimport type { NodeSerializerOptions} from '../../transform'\nimport { ParserRuleType } from '../../transform'\n\nexport class LineHorizontalRuleExtension extends HorizontalRuleExtension {\n fromMarkdown() {\n return [\n {\n type: ParserRuleType.block,\n token: 'hr',\n node: this.name,\n hasOpenClose: false,\n },\n ] as const\n }\n toMarkdown({ state, node }: NodeSerializerOptions) {\n state.write('---')\n state.closeBlock(node)\n }\n}\n", "var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\n\n// packages/remirror__extension-find/src/find-extension.ts\nimport escapeStringRegex from \"escape-string-regexp\";\nimport matchAll from \"string.prototype.matchall\";\nimport {\n command,\n extension,\n helper,\n PlainExtension\n} from \"@remirror/core\";\nimport { Decoration, DecorationSet } from \"@remirror/pm/view\";\n\n// packages/remirror__extension-find/src/find-utils.ts\nfunction rotateIndex(index, length) {\n if (length <= 0) {\n return 0;\n }\n return (index % length + length) % length;\n}\n\n// packages/remirror__extension-find/src/find-extension.ts\nvar FindExtension = class extends PlainExtension {\n constructor() {\n super(...arguments);\n this._updating = false;\n this._query = \"\";\n this._caseSensitive = true;\n this._ranges = [];\n this._activeIndex = void 0;\n }\n get name() {\n return \"find\";\n }\n find({ query, activeIndex, caseSensitive }) {\n if (!query) {\n return this.stopFind();\n }\n this.setProps({ query, activeIndex, caseSensitive });\n return ({ tr, dispatch }) => {\n return this.updateView(tr, dispatch);\n };\n }\n stopFind() {\n return ({ tr, dispatch }) => {\n this._query = \"\";\n this._activeIndex = void 0;\n return this.updateView(tr, dispatch);\n };\n }\n findAndReplace({\n query,\n caseSensitive,\n replacement,\n index\n }) {\n return (props) => {\n this.setProps({ query, caseSensitive });\n const { tr, dispatch } = props;\n const ranges = this.gatherFindResults(tr.doc);\n index = rotateIndex(index ?? this._activeIndex ?? 0, ranges.length);\n const result = ranges[index];\n if (!result) {\n return false;\n }\n if (!dispatch) {\n return true;\n }\n tr.insertText(replacement, result.from, result.to);\n return this.updateView(tr, dispatch);\n };\n }\n findAndReplaceAll({\n query,\n caseSensitive,\n replacement\n }) {\n return (props) => {\n this.setProps({ query, caseSensitive });\n const { tr } = props;\n const ranges = this.gatherFindResults(tr.doc);\n for (let i = ranges.length - 1; i >= 0; i--) {\n const { from, to } = ranges[i];\n tr.insertText(replacement, from, to);\n }\n return this.stopFind()(props);\n };\n }\n findRanges(options) {\n this.store.commands.find(options);\n return {\n activeIndex: this._activeIndex,\n ranges: this._ranges\n };\n }\n /**\n * This plugin is responsible for do the searching and updating the\n * decorations.\n */\n createPlugin() {\n return {\n state: {\n init() {\n return DecorationSet.empty;\n },\n apply: (tr, old) => {\n if (this._updating || tr.docChanged && this.options.alwaysFind) {\n const doc = tr.doc;\n this._ranges = this.gatherFindResults(doc);\n this.normalizeActiveIndex();\n this.scrollToActiveResult();\n return this.createDecorationSet(doc);\n }\n if (tr.docChanged) {\n return old.map(tr.mapping, tr.doc);\n }\n return old;\n }\n },\n props: {\n decorations: (state) => {\n return this.getPluginState(state);\n }\n }\n };\n }\n setProps({\n query,\n activeIndex,\n caseSensitive\n }) {\n this._query = escapeStringRegex(query);\n this._activeIndex = activeIndex;\n this._caseSensitive = caseSensitive ?? false;\n }\n gatherFindResults(doc) {\n if (!this._query) {\n return [];\n }\n const re = new RegExp(this._query, this._caseSensitive ? \"gu\" : \"gui\");\n const ranges = [];\n doc.descendants((node, pos) => {\n if (!node.isTextblock) {\n return true;\n }\n const start = pos + 1;\n for (const match of matchAll(node.textContent, re)) {\n const from = start + (match.index ?? 0);\n const to = from + match[0].length;\n ranges.push({ from, to });\n }\n return false;\n });\n return ranges;\n }\n normalizeActiveIndex() {\n if (this._activeIndex != null) {\n this._activeIndex = rotateIndex(this._activeIndex, this._ranges.length);\n }\n }\n createDecorationSet(doc) {\n const decorations = this._ranges.map((deco, index) => {\n return Decoration.inline(\n deco.from,\n deco.to,\n index === this._activeIndex ? this.options.activeDecoration : this.options.decoration\n );\n });\n return DecorationSet.create(doc, decorations);\n }\n /**\n * Dispatch an empty transaction to trigger an update of the decoration.\n */\n updateView(tr, dispatch) {\n this._updating = true;\n if (dispatch) {\n dispatch(tr);\n }\n this._updating = false;\n return true;\n }\n scrollToActiveResult() {\n var _a;\n if (this._activeIndex == null) {\n return;\n }\n const activeResult = this._ranges[this._activeIndex];\n if (!activeResult) {\n return;\n }\n const view = this.store.view;\n const maxSize = view.state.doc.content.size;\n const pos = activeResult.from;\n if (pos > maxSize) {\n return;\n }\n const dom = view.domAtPos(pos).node;\n (_a = dom == null ? void 0 : dom.scrollIntoView) == null ? void 0 : _a.call(dom, { block: \"nearest\", behavior: \"smooth\" });\n }\n};\n__decorateClass([\n command()\n], FindExtension.prototype, \"find\", 1);\n__decorateClass([\n command()\n], FindExtension.prototype, \"stopFind\", 1);\n__decorateClass([\n command()\n], FindExtension.prototype, \"findAndReplace\", 1);\n__decorateClass([\n command()\n], FindExtension.prototype, \"findAndReplaceAll\", 1);\n__decorateClass([\n helper()\n], FindExtension.prototype, \"findRanges\", 1);\nFindExtension = __decorateClass([\n extension({\n defaultOptions: {\n decoration: { style: \"background-color: yellow;\" },\n activeDecoration: { style: \"background-color: orange;\" },\n alwaysFind: false\n }\n })\n], FindExtension);\nexport {\n FindExtension\n};\n", "/**\n * exclude array member from array\n * @param arr\n * @param excludeArr \n * @returns \n */\nexport const arrayExclude = (arr: any[], excludeArr: any[]) => {\n return arr.filter((item) => !excludeArr.includes(item))\n}\n", "import { arrayExclude } from '../../utils/common'\nimport type { NodeSerializerOptions } from '../../transform'\nimport { ParserRuleType } from '../../transform'\nimport type {\n ApplySchemaAttributes,\n NodeExtensionSpec,\n NodeSpecOverride,\n NodeViewMethod,\n PrioritizedKeyBindings,\n} from '@remirror/core'\nimport { NodeExtension, isElementDomNode, nodeInputRule } from '@remirror/core'\nimport type { ProsemirrorNode } from '@remirror/pm'\nimport { HtmlNodeView } from './html-block-view'\nimport type { InputRule } from '@remirror/pm/inputrules'\nimport { TextSelection } from '@remirror/pm/state'\nimport block_names from 'markdown-it/lib/common/html_blocks'\nimport { arrowHandler } from '../CodeMirror/codemirror-utils'\nimport { needSplitInlineHtmlTokenTags } from '@/transform/markdown-it-html-inline'\n\nexport class LineHtmlBlockExtension extends NodeExtension {\n get name() {\n return 'html_block' as const\n }\n\n createNodeSpec(extra: ApplySchemaAttributes, override: NodeSpecOverride): NodeExtensionSpec {\n return {\n group: 'block',\n content: 'text*',\n defining: true,\n ...override,\n code: true,\n marks: '',\n attrs: {\n language: { default: 'html' },\n ...extra.defaults(),\n },\n parseDOM: [\n {\n tag: 'pre',\n getAttrs: (node) => (isElementDomNode(node) ? extra.parse(node) : false),\n },\n ...(override.parseDOM ?? []),\n ],\n toDOM() {\n return ['pre', ['code', 0]]\n },\n isolating: true,\n }\n }\n\n createNodeViews(): NodeViewMethod {\n return (node: ProsemirrorNode, view, getPos) => {\n return new HtmlNodeView(node, view, getPos as () => number)\n }\n }\n\n createInputRules(): InputRule[] {\n const rules: InputRule[] = [\n nodeInputRule({\n regexp: new RegExp(\n '^</?(' +\n arrayExclude(block_names, needSplitInlineHtmlTokenTags).join('|') +\n ')(?=(\\\\s|/?>|$))',\n 'i',\n ),\n type: this.type,\n beforeDispatch: ({ tr, start, match }) => {\n const $pos = tr.doc.resolve(start)\n tr.setSelection(TextSelection.near($pos))\n tr.insertText(match[0])\n },\n }),\n ]\n\n return rules\n }\n\n createKeymap(): PrioritizedKeyBindings {\n return {\n ArrowLeft: arrowHandler('left'),\n ArrowRight: arrowHandler('right'),\n ArrowUp: arrowHandler('up'),\n ArrowDown: arrowHandler('down'),\n }\n }\n\n public fromMarkdown() {\n return [\n {\n type: ParserRuleType.block,\n token: 'html_block',\n node: this.name,\n hasOpenClose: false,\n },\n ] as const\n }\n\n public toMarkdown({ state, node }: NodeSerializerOptions) {\n state.write('\\n')\n state.text(node.textContent, false)\n state.text('\\n')\n state.closeBlock(node)\n state.ensureNewLine()\n }\n}\n", "import type { Node as ProseNode } from 'prosemirror-model'\nimport type { NodeView } from 'prosemirror-view'\nimport type { EditorView } from '@remirror/pm/view'\nimport type { ProsemirrorNode } from 'remirror'\nimport { type EditorSchema } from 'remirror'\nimport type { EditorView as CodeMirrorEditorView } from '@codemirror/view'\nimport { Compartment } from '@codemirror/state'\nimport MfCodemirrorView from '@/codemirror/codemirror'\nimport { minimalSetup } from '../CodeMirror/setup'\nimport { html } from '@codemirror/lang-html'\n\nfunction removeNewlines(str: string) {\n return str.replace(/\\n+|\\t/g, '')\n}\n\nexport class HtmlNodeView implements NodeView {\n // nodeview params\n private _node: ProseNode\n private _outerView: EditorView\n private _getPos: () => number\n\n // nodeview dom\n dom: HTMLElement\n private _htmlRenderElt: HTMLElement | undefined\n private _htmlSrcElt: HTMLElement | null = null\n private _innerView: CodeMirrorEditorView | undefined\n private readonly schema: EditorSchema\n private readonly languageConf: Compartment\n mfCodemirrorView?: MfCodemirrorView\n\n constructor(node: ProseNode, view: EditorView, getPos: () => number) {\n // store arguments\n this._node = node\n this._outerView = view\n this._getPos = getPos\n this.schema = node.type.schema\n\n // create dom representation of nodeview\n this.dom = document.createElement('div')\n this.dom.classList.add('html-node')\n\n this._htmlRenderElt = document.createElement('p')\n this._htmlRenderElt.textContent = ''\n this._htmlRenderElt.classList.add('html-node-render')\n\n const label = document.createElement('span')\n label.innerHTML = `<i class=\"ri-expand-left-right-line\"></i> HTML`\n label.classList.add('html-node-label')\n\n this.dom.appendChild(label)\n\n this.dom.appendChild(this._htmlRenderElt)\n\n this._htmlSrcElt = document.createElement('span')\n this._htmlSrcElt.classList.add('html-src', 'node-hide')\n\n this.languageConf = new Compartment()\n\n this.dom.appendChild(this._htmlSrcElt)\n\n this.dom.addEventListener('click', () => this.ensureFocus())\n label.addEventListener('click', () => this.ensureFocus())\n this.dom.addEventListener('mouseenter', this.handleMouseEnter)\n this.dom.addEventListener('mouseleave', this.handleMouseLeave)\n\n this.renderHtml()\n }\n\n /**\n * Ensure focus on the inner editor whenever this node has focus.\n * This helps to prevent accidental deletions of html blocks.\n */\n ensureFocus() {\n if (this._outerView.hasFocus()) {\n if (this._innerView) {\n this._innerView.focus()\n } else {\n this.openEditor()\n }\n }\n }\n\n ignoreMutation = () => true\n\n update(node: ProsemirrorNode): boolean {\n this._node = node\n return !!this.mfCodemirrorView?.update(node)\n }\n\n // == Events ===================================== //\n\n selectNode() {\n if (!this.mfCodemirrorView?.updating) {\n this.openEditor()\n }\n }\n\n deselectNode() {\n if (this.mfCodemirrorView?.updating) {\n this.closeEditor()\n }\n }\n\n handleMouseEnter = () => {\n this.dom.classList.add('node-enter')\n }\n\n handleMouseLeave = () => {\n this.dom.classList.remove('node-enter')\n }\n\n stopEvent(): boolean {\n return true\n }\n\n // == Rendering ===================================== //\n\n renderHtml() {\n if (!this._htmlRenderElt) {\n return\n }\n\n // get tex string to render\n const content = removeNewlines(this.mfCodemirrorView?.content || this._node.textContent)\n const texString = content.trim()\n\n if (texString.length < 1) {\n while (this._htmlRenderElt.firstChild) {\n this._htmlRenderElt.firstChild.remove()\n }\n return\n } else {\n // ignore\n }\n\n try {\n while (this._htmlRenderElt.firstChild) {\n this._htmlRenderElt.firstChild.remove()\n }\n\n this._htmlRenderElt.classList.remove('node-hide')\n this._htmlRenderElt.classList.add('node-show')\n\n this._htmlRenderElt.innerHTML = texString\n } catch (err) {}\n }\n\n // == Inner Editor ================================== /\n setSelection(anchor: number, head: number): void {\n if (!this._innerView) {\n this.openEditor()\n this.mfCodemirrorView!.setSelection(anchor, head)\n } else {\n this.mfCodemirrorView?.setSelection(anchor, head)\n }\n }\n\n openEditor() {\n if (this._innerView) {\n throw Error('inner view should not exist!')\n }\n\n const htmlLang = html()\n this.mfCodemirrorView = new MfCodemirrorView({\n view: this._outerView,\n node: this._node,\n getPos: this._getPos,\n languageName: 'html',\n createParams: {\n parent: this._htmlSrcElt!,\n },\n extensions: [\n minimalSetup,\n htmlLang\n ]\n })\n\n this._htmlSrcElt!.classList.remove('node-hide')\n this._innerView = this.mfCodemirrorView.cm\n this._htmlRenderElt?.classList.add('node-hide')\n\n const prevCursorPos: number = this._node.textContent.length || 0\n\n this.setSelection(prevCursorPos, prevCursorPos)\n\n this._innerView.focus()\n\n this._innerView.contentDOM.addEventListener('blur', () => {\n this.closeEditor(true)\n })\n\n this.mfCodemirrorView.forwardSelection()\n }\n\n destroy() {\n // close the inner editor without rendering\n this.closeEditor(false)\n // clean up dom elements\n if (this._htmlRenderElt) {\n this._htmlRenderElt.remove()\n delete this._htmlRenderElt\n }\n if (this._htmlSrcElt) {\n this._htmlSrcElt.remove()\n this._htmlSrcElt = null // fix for the error\n }\n\n this.dom.removeEventListener('mouseenter', this.handleMouseEnter)\n this.dom.removeEventListener('mouseleave', this.handleMouseLeave)\n this.dom.remove()\n }\n\n /**\n * Called when the inner ProseMirror editor should close.\n *\n * @param render Optionally update the rendered html after closing. (which\n * is generally what we want to do, since the user is done editing!)\n */\n closeEditor(render: boolean = true) {\n if (this._innerView) {\n this._innerView.destroy()\n this._innerView = undefined\n }\n if (this.mfCodemirrorView) {\n this.mfCodemirrorView.destroy()\n this.mfCodemirrorView = undefined\n }\n\n if (render) {\n this.renderHtml()\n }\n }\n}\n", "import type {\n Extension as CodeMirrorExtension,\n Transaction as CodeMirrorTransaction,\n} from '@codemirror/state'\nimport { Compartment, EditorState as CodeMirrorEditorState } from '@codemirror/state'\nimport type {\n Command as CodeMirrorCommand,\n KeyBinding as CodeMirrorKeyBinding,\n} from '@codemirror/view'\nimport { EditorView as CodeMirrorEditorView, keymap } from '@codemirror/view'\nimport { assertGet, isPromise, replaceNodeAtPosition } from '@remirror/core'\nimport type { EditorSchema, EditorView, ProsemirrorNode } from '@remirror/pm'\nimport { exitCode } from '@remirror/pm/commands'\nimport { Selection, TextSelection } from '@remirror/pm/state'\nimport { lightTheme } from '@markflowy/theme'\nimport type { LanguageDescription, LanguageSupport } from '@codemirror/language'\nimport { languages } from '@codemirror/language-data'\nimport { nanoid } from 'nanoid'\nimport type { LoadLanguage } from '../extensions/CodeMirror/codemirror-node-view'\nimport { createTheme } from './theme'\nimport type { CreateThemeOptions } from './theme'\n\nconst cmInstanceMap = new Map<string, MfCodemirrorView>()\nconst themeRef = { current: createTheme(lightTheme.codemirorTheme as CreateThemeOptions) }\n\nexport const changeTheme = (theme: CreateThemeOptions): void => {\n themeRef.current = createTheme(theme)\n cmInstanceMap.forEach((mfCmView) => {\n mfCmView.cm.dispatch({\n effects: mfCmView.editorTheme.reconfigure(themeRef.current),\n })\n })\n}\n\nclass MfCodemirrorView {\n private readonly view: EditorView\n\n private readonly getPos: () => number\n\n private readonly languageConf: Compartment\n\n private readonly toggleName = 'paragraph'\n\n private readonly schema: EditorSchema\n\n private languageName: string\n\n id = nanoid()\n\n cm: CodeMirrorEditorView\n\n content = ''\n\n node: ProsemirrorNode\n\n editorTheme: Compartment\n\n updating = false\n\n loadLanguage: LoadLanguage\n\n constructor({\n view,\n getPos,\n node,\n extensions = [],\n languageName,\n createParams = {},\n }: {\n node: ProsemirrorNode\n view: EditorView\n getPos: () => number\n extensions?: CodeMirrorExtension[] | null\n languageName: string\n createParams?: Record<string, any>\n }) {\n this.view = view\n this.getPos = getPos\n this.node = node\n this.languageConf = new Compartment()\n this.editorTheme = new Compartment()\n this.schema = node.type.schema\n this.languageName = languageName\n this.loadLanguage = loadLanguage\n\n this.content = this.node.textContent\n const changeFilter = CodeMirrorEditorState.changeFilter.of((tr: CodeMirrorTransaction) => {\n if (!tr.docChanged) {\n this.forwardSelection()\n }\n\n return true\n })\n\n const startState = CodeMirrorEditorState.create({\n doc: this.node.textContent as string,\n extensions: [\n keymap.of(this.codeMirrorKeymap()),\n changeFilter,\n this.languageConf.of([]),\n this.editorTheme.of(themeRef.current),\n ...(extensions ?? []),\n ],\n })\n\n // Create a CodeMirror instance\n this.cm = new CodeMirrorEditorView({\n state: startState,\n dispatch: this.valueChanged.bind(this),\n ...createParams,\n })\n\n cmInstanceMap.set(this.id, this)\n\n this.updateLanguage()\n }\n\n update(node: ProsemirrorNode): boolean {\n if (node.type !== this.node.type) {\n return false\n }\n\n this.node = node\n this.content = node.textContent\n this.updateLanguage()\n const change = computeChange(this.cm.state.doc.toString(), node.textContent)\n\n if (change) {\n this.updating = true\n this.cm.dispatch({\n changes: { from: change.from, to: change.to, insert: change.text },\n })\n this.updating = false\n }\n\n return true\n }\n\n setSelection(anchor: number, head: number): void {\n this.cm.focus()\n this.updating = true\n this.cm.dispatch({ selection: { anchor, head } })\n this.updating = false\n }\n\n updateLanguage() {\n const languageName = this.node.attrs.language\n if (languageName === this.languageName) {\n return\n }\n\n const language = this.loadLanguage(languageName)\n\n if (!language) {\n return\n }\n\n if (isPromise(language)) {\n language.then((lang) => {\n this.setLanguage(lang)\n this.languageName = languageName\n })\n return\n }\n\n this.setLanguage(language)\n this.languageName = languageName\n }\n\n destroy() {\n this.cm.destroy()\n cmInstanceMap.delete(this.id)\n }\n\n forwardSelection() {\n if (!this.cm.hasFocus) {\n return\n }\n\n const { state } = this.view\n const selection = this.asProseMirrorSelection(state.doc)\n\n if (!selection.eq(state.selection)) {\n this.view.dispatch(state.tr.setSelection(selection))\n }\n }\n\n private setLanguage(language: LanguageSupport) {\n this.cm.dispatch({\n effects: this.languageConf.reconfigure(language),\n })\n }\n\n private valueChanged(tr: CodeMirrorTransaction): void {\n if (!this.cm) return\n\n this.cm.update([tr])\n\n if (!tr.docChanged || this.updating) {\n return\n }\n\n const change = computeChange(this.node.textContent, tr.state.doc.toString())\n\n if (change) {\n const start = this.getPos() + 1\n const transaction = this.view.state.tr.replaceWith(\n start + change.from,\n start + change.to,\n change.text ? this.schema.text(change.text) : [],\n )\n this.view.dispatch(transaction)\n }\n }\n\n private asProseMirrorSelection(doc: ProsemirrorNode) {\n const start = this.getPos() + 1\n const { anchor, head } = this.cm.state.selection.main\n return TextSelection.between(doc.resolve(anchor + start), doc.resolve(head + start))\n }\n\n private codeMirrorKeymap(): CodeMirrorKeyBinding[] {\n return [\n {\n key: 'ArrowUp',\n run: this.maybeEscape('line', -1),\n },\n {\n key: 'ArrowLeft',\n run: this.maybeEscape('char', -1),\n },\n {\n key: 'ArrowDown',\n run: this.maybeEscape('line', 1),\n },\n {\n key: 'ArrowRight',\n run: this.maybeEscape('char', 1),\n },\n {\n key: 'Ctrl-Enter',\n run: () => {\n if (exitCode(this.view.state, this.view.dispatch)) {\n this.view.focus()\n return true\n }\n\n return false\n },\n },\n {\n key: 'Backspace',\n run: () => {\n const { ranges } = this.cm.state.selection\n\n if (!this.cm || !ranges || ranges.length > 1) {\n return false\n }\n\n const selection = ranges[0]\n\n if (selection && (!selection.empty || selection.anchor > 0)) {\n return false\n }\n\n // We don't want to convert a multi-line code block into a paragraph\n // because newline characters are invalid in a paragraph node.\n if (this.cm.state.doc.lines >= 2) {\n return false\n }\n\n const { state } = this.view\n const toggleNode = assertGet(state.schema.nodes, this.toggleName)\n const pos = this.getPos()\n\n const tr = replaceNodeAtPosition({\n pos,\n tr: state.tr,\n content: toggleNode.createChecked({}, this.node.content),\n })\n\n tr.setSelection(TextSelection.near(tr.doc.resolve(pos)))\n\n this.view.dispatch(tr)\n this.view.focus()\n return true\n },\n },\n ]\n }\n\n private maybeEscape(unit: 'line' | 'char', dir: 1 | -1): CodeMirrorCommand {\n return (view: CodeMirrorEditorView) => {\n const { state } = view\n\n // Exit if the selection is not empty\n if (state.selection.ranges.some((range) => !range.empty)) {\n return false\n }\n\n const { anchor } = state.selection.main\n\n const line = state.doc.lineAt(anchor)\n const lineOffset = anchor - line.from\n\n if (\n line.number !== (dir < 0 ? 1 : state.doc.lines) ||\n (unit === 'char' && lineOffset !== (dir < 0 ? 0 : line.length))\n ) {\n return false\n }\n\n const targetPos = this.getPos() + (dir < 0 ? 0 : this.node.nodeSize)\n const selection = Selection.near(this.view.state.doc.resolve(targetPos), dir)\n\n this.view.dispatch(this.view.state.tr.setSelection(selection).scrollIntoView())\n this.view.focus()\n return true\n }\n }\n}\n\nexport const getLanguageMap = (): Record<string, LanguageDescription> => {\n const languageMap: Record<string, LanguageDescription> = {}\n\n for (const language of languages ?? []) {\n for (const alias of language.alias) {\n languageMap[alias] = language\n }\n }\n\n return languageMap\n}\n\nexport const loadLanguage = (\n languageName: string,\n): Promise<LanguageSupport> | LanguageSupport | undefined => {\n if (typeof languageName !== 'string') {\n return undefined\n }\n\n const languageMap = getLanguageMap()\n const language = languageMap[languageName.toLowerCase()]\n\n if (!language) {\n return undefined\n }\n\n return language.support || language.load()\n}\n\nexport function computeChange(\n oldVal: string,\n newVal: string,\n): { from: number; to: number; text: string } | null {\n if (oldVal === newVal) {\n return null\n }\n\n let start = 0\n let oldEnd = oldVal.length\n let newEnd = newVal.length\n\n while (start < oldEnd && oldVal.charCodeAt(start) === newVal.charCodeAt(start)) {\n ++start\n }\n\n while (\n oldEnd > start &&\n newEnd > start &&\n oldVal.charCodeAt(oldEnd - 1) === newVal.charCodeAt(newEnd - 1)\n ) {\n oldEnd--\n newEnd--\n }\n\n return { from: start, to: oldEnd, text: newVal.slice(start, newEnd) }\n}\n\nexport default MfCodemirrorView\n", "import type { CreateThemeOptions } from '@uiw/codemirror-themes'\nimport { createTheme } from '@uiw/codemirror-themes'\n\nexport { createTheme }\nexport type { CreateThemeOptions }\n", "// Copied from https://github.com/codemirror/basic-setup/blob/main/src/basic-setup.ts\n\nimport {\n keymap,\n highlightSpecialChars,\n drawSelection,\n highlightActiveLine,\n dropCursor,\n rectangularSelection,\n crosshairCursor,\n lineNumbers,\n highlightActiveLineGutter,\n EditorView\n} from '@codemirror/view'\nimport type { Extension } from '@codemirror/state'\nimport { EditorState } from '@codemirror/state'\nimport {\n defaultHighlightStyle,\n syntaxHighlighting,\n indentOnInput,\n bracketMatching,\n foldGutter,\n foldKeymap,\n} from '@codemirror/language'\nimport { defaultKeymap, history, historyKeymap } from '@codemirror/commands'\nimport { searchKeymap, highlightSelectionMatches } from '@codemirror/search'\nimport {\n autocompletion,\n completionKeymap,\n closeBrackets,\n closeBracketsKeymap,\n} from '@codemirror/autocomplete'\nimport { lintKeymap } from '@codemirror/lint'\n\n// (The superfluous function calls around the list of extensions work\n// around current limitations in tree-shaking software.)\n\n/// This is an extension value that just pulls together a number of\n/// extensions that you might want in a basic editor. It is meant as a\n/// convenient helper to quickly set up CodeMirror without installing\n/// and importing a lot of separate packages.\n///\n/// Specifically, it includes...\n///\n/// - [the default command bindings](#commands.defaultKeymap)\n/// - [line numbers](#view.lineNumbers)\n/// - [special character highlighting](#view.highlightSpecialChars)\n/// - [the undo history](#commands.history)\n/// - [a fold gutter](#language.foldGutter)\n/// - [custom selection drawing](#view.drawSelection)\n/// - [drop cursor](#view.dropCursor)\n/// - [multiple selections](#state.EditorState^allowMultipleSelections)\n/// - [reindentation on input](#language.indentOnInput)\n/// - [the default highlight style](#language.defaultHighlightStyle) (as fallback)\n/// - [bracket matching](#language.bracketMatching)\n/// - [bracket closing](#autocomplete.closeBrackets)\n/// - [autocompletion](#autocomplete.autocompletion)\n/// - [rectangular selection](#view.rectangularSelection) and [crosshair cursor](#view.crosshairCursor)\n/// - [active line highlighting](#view.highlightActiveLine)\n/// - [active line gutter highlighting](#view.highlightActiveLineGutter)\n/// - [selection match highlighting](#search.highlightSelectionMatches)\n/// - [search](#search.searchKeymap)\n/// - [linting](#lint.lintKeymap)\n///\n/// (You'll probably want to add some language package to your setup\n/// too.)\n///\n/// This extension does not allow customization. The idea is that,\n/// once you decide you want to configure your editor more precisely,\n/// you take this package's source (which is just a bunch of imports\n/// and an array literal), copy it into your own code, and adjust it\n/// as desired.\nexport const basicSetup: Extension = (() => [\n EditorView.lineWrapping,\n\n lineNumbers({\n formatNumber: (line: number) => {\n return line % 10 === 0 || line === 1 ? `${line}` : ''\n }\n }),\n highlightActiveLineGutter(),\n highlightSpecialChars(),\n history(),\n foldGutter(),\n dropCursor(),\n EditorState.allowMultipleSelections.of(true),\n indentOnInput(),\n syntaxHighlighting(defaultHighlightStyle, { fallback: true }),\n bracketMatching(),\n closeBrackets(),\n autocompletion(),\n crosshairCursor(),\n highlightActiveLine(),\n highlightSelectionMatches(),\n keymap.of([\n ...closeBracketsKeymap,\n ...defaultKeymap,\n ...searchKeymap,\n ...historyKeymap,\n ...foldKeymap,\n ...completionKeymap,\n ...lintKeymap,\n ]),\n])()\n\n/// A minimal set of extensions to create a functional editor. Only\n/// includes [the default keymap](#commands.defaultKeymap), [undo\n/// history](#commands.history), [special character\n/// highlighting](#view.highlightSpecialChars), [custom selection\n/// drawing](#view.drawSelection), and [default highlight\n/// style](#language.defaultHighlightStyle).\nexport const minimalSetup: Extension = (() => [\n dropCursor(),\n highlightSpecialChars(),\n history(),\n drawSelection(),\n rectangularSelection(),\n syntaxHighlighting(defaultHighlightStyle, { fallback: true }),\n keymap.of([\n ...closeBracketsKeymap,\n ...defaultKeymap,\n ...searchKeymap,\n ...historyKeymap,\n ...foldKeymap,\n ...completionKeymap,\n ...lintKeymap,\n ]),\n])()\n\nexport { EditorView } from '@codemirror/view'\n", "import { ContextTracker, ExternalTokenizer, LRParser } from '@lezer/lr';\nimport { styleTags, tags } from '@lezer/highlight';\nimport { parseMixed } from '@lezer/common';\n\n// This file was generated by lezer-generator. You probably shouldn't edit it.\nconst scriptText = 54,\n StartCloseScriptTag = 1,\n styleText = 55,\n StartCloseStyleTag = 2,\n textareaText = 56,\n StartCloseTextareaTag = 3,\n EndTag = 4,\n SelfClosingEndTag = 5,\n StartTag = 6,\n StartScriptTag = 7,\n StartStyleTag = 8,\n StartTextareaTag = 9,\n StartSelfClosingTag = 10,\n StartCloseTag = 11,\n NoMatchStartCloseTag = 12,\n MismatchedStartCloseTag = 13,\n missingCloseTag = 57,\n IncompleteCloseTag = 14,\n commentContent$1 = 58,\n Element = 20,\n TagName = 22,\n Attribute = 23,\n AttributeName = 24,\n AttributeValue = 26,\n UnquotedAttributeValue = 27,\n ScriptText = 28,\n StyleText = 31,\n TextareaText = 34,\n OpenTag = 36,\n CloseTag = 37,\n Dialect_noMatch = 0,\n Dialect_selfClosing = 1;\n\n/* Hand-written tokenizers for HTML. */\n\nconst selfClosers = {\n area: true, base: true, br: true, col: true, command: true,\n embed: true, frame: true, hr: true, img: true, input: true,\n keygen: true, link: true, meta: true, param: true, source: true,\n track: true, wbr: true, menuitem: true\n};\n\nconst implicitlyClosed = {\n dd: true, li: true, optgroup: true, option: true, p: true,\n rp: true, rt: true, tbody: true, td: true, tfoot: true,\n th: true, tr: true\n};\n\nconst closeOnOpen = {\n dd: {dd: true, dt: true},\n dt: {dd: true, dt: true},\n li: {li: true},\n option: {option: true, optgroup: true},\n optgroup: {optgroup: true},\n p: {\n address: true, article: true, aside: true, blockquote: true, dir: true,\n div: true, dl: true, fieldset: true, footer: true, form: true,\n h1: true, h2: true, h3: true, h4: true, h5: true, h6: true,\n header: true, hgroup: true, hr: true, menu: true, nav: true, ol: true,\n p: true, pre: true, section: true, table: true, ul: true\n },\n rp: {rp: true, rt: true},\n rt: {rp: true, rt: true},\n tbody: {tbody: true, tfoot: true},\n td: {td: true, th: true},\n tfoot: {tbody: true},\n th: {td: true, th: true},\n thead: {tbody: true, tfoot: true},\n tr: {tr: true}\n};\n\nfunction nameChar(ch) {\n return ch == 45 || ch == 46 || ch == 58 || ch >= 65 && ch <= 90 || ch == 95 || ch >= 97 && ch <= 122 || ch >= 161\n}\n\nfunction isSpace(ch) {\n return ch == 9 || ch == 10 || ch == 13 || ch == 32\n}\n\nlet cachedName = null, cachedInput = null, cachedPos = 0;\nfunction tagNameAfter(input, offset) {\n let pos = input.pos + offset;\n if (cachedPos == pos && cachedInput == input) return cachedName\n let next = input.peek(offset);\n while (isSpace(next)) next = input.peek(++offset);\n let name = \"\";\n for (;;) {\n if (!nameChar(next)) break\n name += String.fromCharCode(next);\n next = input.peek(++offset);\n }\n // Undefined to signal there's a <? or <!, null for just missing\n cachedInput = input; cachedPos = pos;\n return cachedName = name ? name.toLowerCase() : next == question || next == bang ? undefined : null\n}\n\nconst lessThan = 60, greaterThan = 62, slash = 47, question = 63, bang = 33, dash = 45;\n\nfunction ElementContext(name, parent) {\n this.name = name;\n this.parent = parent;\n this.hash = parent ? parent.hash : 0;\n for (let i = 0; i < name.length; i++) this.hash += (this.hash << 4) + name.charCodeAt(i) + (name.charCodeAt(i) << 8);\n}\n\nconst startTagTerms = [StartTag, StartSelfClosingTag, StartScriptTag, StartStyleTag, StartTextareaTag];\n\nconst elementContext = new ContextTracker({\n start: null,\n shift(context, term, stack, input) {\n return startTagTerms.indexOf(term) > -1 ? new ElementContext(tagNameAfter(input, 1) || \"\", context) : context\n },\n reduce(context, term) {\n return term == Element && context ? context.parent : context\n },\n reuse(context, node, stack, input) {\n let type = node.type.id;\n return type == StartTag || type == OpenTag\n ? new ElementContext(tagNameAfter(input, 1) || \"\", context) : context\n },\n hash(context) { return context ? context.hash : 0 },\n strict: false\n});\n\nconst tagStart = new ExternalTokenizer((input, stack) => {\n if (input.next != lessThan) {\n // End of file, close any open tags\n if (input.next < 0 && stack.context) input.acceptToken(missingCloseTag);\n return\n }\n input.advance();\n let close = input.next == slash;\n if (close) input.advance();\n let name = tagNameAfter(input, 0);\n if (name === undefined) return\n if (!name) return input.acceptToken(close ? IncompleteCloseTag : StartTag)\n\n let parent = stack.context ? stack.context.name : null;\n if (close) {\n if (name == parent) return input.acceptToken(StartCloseTag)\n if (parent && implicitlyClosed[parent]) return input.acceptToken(missingCloseTag, -2)\n if (stack.dialectEnabled(Dialect_noMatch)) return input.acceptToken(NoMatchStartCloseTag)\n for (let cx = stack.context; cx; cx = cx.parent) if (cx.name == name) return\n input.acceptToken(MismatchedStartCloseTag);\n } else {\n if (name == \"script\") return input.acceptToken(StartScriptTag)\n if (name == \"style\") return input.acceptToken(StartStyleTag)\n if (name == \"textarea\") return input.acceptToken(StartTextareaTag)\n if (selfClosers.hasOwnProperty(name)) return input.acceptToken(StartSelfClosingTag)\n if (parent && closeOnOpen[parent] && closeOnOpen[parent][name]) input.acceptToken(missingCloseTag, -1);\n else input.acceptToken(StartTag);\n }\n}, {contextual: true});\n\nconst commentContent = new ExternalTokenizer(input => {\n for (let dashes = 0, i = 0;; i++) {\n if (input.next < 0) {\n if (i) input.acceptToken(commentContent$1);\n break\n }\n if (input.next == dash) {\n dashes++;\n } else if (input.next == greaterThan && dashes >= 2) {\n if (i >= 3) input.acceptToken(commentContent$1, -2);\n break\n } else {\n dashes = 0;\n }\n input.advance();\n }\n});\n\nfunction inForeignElement(context) {\n for (; context; context = context.parent)\n if (context.name == \"svg\" || context.name == \"math\") return true\n return false\n}\n\nconst endTag = new ExternalTokenizer((input, stack) => {\n if (input.next == slash && input.peek(1) == greaterThan) {\n let selfClosing = stack.dialectEnabled(Dialect_selfClosing) || inForeignElement(stack.context);\n input.acceptToken(selfClosing ? SelfClosingEndTag : EndTag, 2);\n } else if (input.next == greaterThan) {\n input.acceptToken(EndTag, 1);\n }\n});\n\nfunction contentTokenizer(tag, textToken, endToken) {\n let lastState = 2 + tag.length;\n return new ExternalTokenizer(input => {\n // state means:\n // - 0 nothing matched\n // - 1 '<' matched\n // - 2 '</' + possibly whitespace matched\n // - 3-(1+tag.length) part of the tag matched\n // - lastState whole tag + possibly whitespace matched\n for (let state = 0, matchedLen = 0, i = 0;; i++) {\n if (input.next < 0) {\n if (i) input.acceptToken(textToken);\n break\n }\n if (state == 0 && input.next == lessThan ||\n state == 1 && input.next == slash ||\n state >= 2 && state < lastState && input.next == tag.charCodeAt(state - 2)) {\n state++;\n matchedLen++;\n } else if ((state == 2 || state == lastState) && isSpace(input.next)) {\n matchedLen++;\n } else if (state == lastState && input.next == greaterThan) {\n if (i > matchedLen)\n input.acceptToken(textToken, -matchedLen);\n else\n input.acceptToken(endToken, -(matchedLen - 2));\n break\n } else if ((input.next == 10 /* '\\n' */ || input.next == 13 /* '\\r' */) && i) {\n input.acceptToken(textToken, 1);\n break\n } else {\n state = matchedLen = 0;\n }\n input.advance();\n }\n })\n}\n\nconst scriptTokens = contentTokenizer(\"script\", scriptText, StartCloseScriptTag);\n\nconst styleTokens = contentTokenizer(\"style\", styleText, StartCloseStyleTag);\n\nconst textareaTokens = contentTokenizer(\"textarea\", textareaText, StartCloseTextareaTag);\n\nconst htmlHighlighting = styleTags({\n \"Text RawText\": tags.content,\n \"StartTag StartCloseTag SelfClosingEndTag EndTag\": tags.angleBracket,\n TagName: tags.tagName,\n \"MismatchedCloseTag/TagName\": [tags.tagName, tags.invalid],\n AttributeName: tags.attributeName,\n \"AttributeValue UnquotedAttributeValue\": tags.attributeValue,\n Is: tags.definitionOperator,\n \"EntityReference CharacterReference\": tags.character,\n Comment: tags.blockComment,\n ProcessingInst: tags.processingInstruction,\n DoctypeDecl: tags.documentMeta\n});\n\n// This file was generated by lezer-generator. You probably shouldn't edit it.\nconst parser = LRParser.deserialize({\n version: 14,\n states: \",xOVO!rOOO!WQ#tO'#CqO!]Q#tO'#CzO!bQ#tO'#C}O!gQ#tO'#DQO!lQ#tO'#DSO!qOaO'#CpO!|ObO'#CpO#XOdO'#CpO$eO!rO'#CpOOO`'#Cp'#CpO$lO$fO'#DTO$tQ#tO'#DVO$yQ#tO'#DWOOO`'#Dk'#DkOOO`'#DY'#DYQVO!rOOO%OQ&rO,59]O%WQ&rO,59fO%`Q&rO,59iO%hQ&rO,59lO%sQ&rO,59nOOOa'#D^'#D^O%{OaO'#CxO&WOaO,59[OOOb'#D_'#D_O&`ObO'#C{O&kObO,59[OOOd'#D`'#D`O&sOdO'#DOO'OOdO,59[OOO`'#Da'#DaO'WO!rO,59[O'_Q#tO'#DROOO`,59[,59[OOOp'#Db'#DbO'dO$fO,59oOOO`,59o,59oO'lQ#|O,59qO'qQ#|O,59rOOO`-E7W-E7WO'vQ&rO'#CsOOQW'#DZ'#DZO(UQ&rO1G.wOOOa1G.w1G.wO(^Q&rO1G/QOOOb1G/Q1G/QO(fQ&rO1G/TOOOd1G/T1G/TO(nQ&rO1G/WOOO`1G/W1G/WOOO`1G/Y1G/YO(yQ&rO1G/YOOOa-E7[-E7[O)RQ#tO'#CyOOO`1G.v1G.vOOOb-E7]-E7]O)WQ#tO'#C|OOOd-E7^-E7^O)]Q#tO'#DPOOO`-E7_-E7_O)bQ#|O,59mOOOp-E7`-E7`OOO`1G/Z1G/ZOOO`1G/]1G/]OOO`1G/^1G/^O)gQ,UO,59_OOQW-E7X-E7XOOOa7+$c7+$cOOOb7+$l7+$lOOOd7+$o7+$oOOO`7+$r7+$rOOO`7+$t7+$tO)rQ#|O,59eO)wQ#|O,59hO)|Q#|O,59kOOO`1G/X1G/XO*RO7[O'#CvO*dOMhO'#CvOOQW1G.y1G.yOOO`1G/P1G/POOO`1G/S1G/SOOO`1G/V1G/VOOOO'#D['#D[O*uO7[O,59bOOQW,59b,59bOOOO'#D]'#D]O+WOMhO,59bOOOO-E7Y-E7YOOQW1G.|1G.|OOOO-E7Z-E7Z\",\n stateData: \"+s~O!^OS~OUSOVPOWQOXROYTO[]O][O^^O`^Oa^Ob^Oc^Ox^O{_O!dZO~OfaO~OfbO~OfcO~OfdO~OfeO~O!WfOPlP!ZlP~O!XiOQoP!ZoP~O!YlORrP!ZrP~OUSOVPOWQOXROYTOZqO[]O][O^^O`^Oa^Ob^Oc^Ox^O!dZO~O!ZrO~P#dO![sO!euO~OfvO~OfwO~OS|OhyO~OS!OOhyO~OS!QOhyO~OS!SOT!TOhyO~OS!TOhyO~O!WfOPlX!ZlX~OP!WO!Z!XO~O!XiOQoX!ZoX~OQ!ZO!Z!XO~O!YlORrX!ZrX~OR!]O!Z!XO~O!Z!XO~P#dOf!_O~O![sO!e!aO~OS!bO~OS!cO~Oi!dOSgXhgXTgX~OS!fOhyO~OS!gOhyO~OS!hOhyO~OS!iOT!jOhyO~OS!jOhyO~Of!kO~Of!lO~Of!mO~OS!nO~Ok!qO!`!oO!b!pO~OS!rO~OS!sO~OS!tO~Oa!uOb!uOc!uO!`!wO!a!uO~Oa!xOb!xOc!xO!b!wO!c!xO~Oa!uOb!uOc!uO!`!{O!a!uO~Oa!xOb!xOc!xO!b!{O!c!xO~OT~bac!dx{!d~\",\n goto: \"%p!`PPPPPPPPPPPPPPPPPPPP!a!gP!mPP!yP!|#P#S#Y#]#`#f#i#l#r#x!aP!a!aP$O$U$l$r$x%O%U%[%bPPPPPPPP%hX^OX`pXUOX`pezabcde{}!P!R!UR!q!dRhUR!XhXVOX`pRkVR!XkXWOX`pRnWR!XnXXOX`pQrXR!XpXYOX`pQ`ORx`Q{aQ}bQ!PcQ!RdQ!UeZ!e{}!P!R!UQ!v!oR!z!vQ!y!pR!|!yQgUR!VgQjVR!YjQmWR![mQpXR!^pQtZR!`tS_O`ToXp\",\n nodeNames: \"\u26A0 StartCloseTag StartCloseTag StartCloseTag EndTag SelfClosingEndTag StartTag StartTag StartTag StartTag StartTag StartCloseTag StartCloseTag StartCloseTag IncompleteCloseTag Document Text EntityReference CharacterReference InvalidEntity Element OpenTag TagName Attribute AttributeName Is AttributeValue UnquotedAttributeValue ScriptText CloseTag OpenTag StyleText CloseTag OpenTag TextareaText CloseTag OpenTag CloseTag SelfClosingTag Comment ProcessingInst MismatchedCloseTag CloseTag DoctypeDecl\",\n maxTerm: 67,\n context: elementContext,\n nodeProps: [\n [\"closedBy\", -10,1,2,3,7,8,9,10,11,12,13,\"EndTag\",6,\"EndTag SelfClosingEndTag\",-4,21,30,33,36,\"CloseTag\"],\n [\"openedBy\", 4,\"StartTag StartCloseTag\",5,\"StartTag\",-4,29,32,35,37,\"OpenTag\"],\n [\"group\", -9,14,17,18,19,20,39,40,41,42,\"Entity\",16,\"Entity TextContent\",-3,28,31,34,\"TextContent Entity\"],\n [\"isolate\", -11,21,29,30,32,33,35,36,37,38,41,42,\"ltr\",-3,26,27,39,\"\"]\n ],\n propSources: [htmlHighlighting],\n skippedNodes: [0],\n repeatNodeCount: 9,\n tokenData: \"!<p!aR!YOX$qXY,QYZ,QZ[$q[]&X]^,Q^p$qpq,Qqr-_rs3_sv-_vw3}wxHYx}-_}!OH{!O!P-_!P!Q$q!Q![-_![!]Mz!]!^-_!^!_!$S!_!`!;x!`!a&X!a!c-_!c!}Mz!}#R-_#R#SMz#S#T1k#T#oMz#o#s-_#s$f$q$f%W-_%W%oMz%o%p-_%p&aMz&a&b-_&b1pMz1p4U-_4U4dMz4d4e-_4e$ISMz$IS$I`-_$I`$IbMz$Ib$Kh-_$Kh%#tMz%#t&/x-_&/x&EtMz&Et&FV-_&FV;'SMz;'S;:j!#|;:j;=`3X<%l?&r-_?&r?AhMz?Ah?BY$q?BY?MnMz?MnO$q!Z$|c`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr$qrs&}sv$qvw+Pwx(tx!^$q!^!_*V!_!a&X!a#S$q#S#T&X#T;'S$q;'S;=`+z<%lO$q!R&bX`P!a`!cpOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&Xq'UV`P!cpOv&}wx'kx!^&}!^!_(V!_;'S&};'S;=`(n<%lO&}P'pT`POv'kw!^'k!_;'S'k;'S;=`(P<%lO'kP(SP;=`<%l'kp([S!cpOv(Vx;'S(V;'S;=`(h<%lO(Vp(kP;=`<%l(Vq(qP;=`<%l&}a({W`P!a`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t`)jT!a`Or)esv)ew;'S)e;'S;=`)y<%lO)e`)|P;=`<%l)ea*SP;=`<%l(t!Q*^V!a`!cpOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!Q*vP;=`<%l*V!R*|P;=`<%l&XW+UYkWOX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+PW+wP;=`<%l+P!Z+}P;=`<%l$q!a,]``P!a`!cp!^^OX&XXY,QYZ,QZ]&X]^,Q^p&Xpq,Qqr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!_-ljhS`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_*V!_!a&X!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q[/ebhSkWOX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+PS0rXhSqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0mS1bP;=`<%l0m[1hP;=`<%l/^!V1vchS`P!a`!cpOq&Xqr1krs&}sv1kvw0mwx(tx!P1k!P!Q&X!Q!^1k!^!_*V!_!a&X!a#s1k#s$f&X$f;'S1k;'S;=`3R<%l?Ah1k?Ah?BY&X?BY?Mn1k?MnO&X!V3UP;=`<%l1k!_3[P;=`<%l-_!Z3hV!`h`P!cpOv&}wx'kx!^&}!^!_(V!_;'S&};'S;=`(n<%lO&}!_4WihSkWc!ROX5uXZ7SZ[5u[^7S^p5uqr8trs7Sst>]tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^/^!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!Z5zbkWOX5uXZ7SZ[5u[^7S^p5uqr5urs7Sst+Ptw5uwx7Sx!]5u!]!^7w!^!a7S!a#S5u#S#T7S#T;'S5u;'S;=`8n<%lO5u!R7VVOp7Sqs7St!]7S!]!^7l!^;'S7S;'S;=`7q<%lO7S!R7qOa!R!R7tP;=`<%l7S!Z8OYkWa!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!Z8qP;=`<%l5u!_8{ihSkWOX5uXZ7SZ[5u[^7S^p5uqr8trs7Sst/^tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^:j!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!_:sbhSkWa!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!V<QchSOp7Sqr;{rs7Sst0mtw;{wx7Sx!P;{!P!Q7S!Q!];{!]!^=]!^!a7S!a#s;{#s$f7S$f;'S;{;'S;=`>P<%l?Ah;{?Ah?BY7S?BY?Mn;{?MnO7S!V=dXhSa!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!V>SP;=`<%l;{!_>YP;=`<%l8t!_>dhhSkWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^/^!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!Z@TakWOX@OXZAYZ[@O[^AY^p@Oqr@OrsAYsw@OwxAYx!]@O!]!^Az!^!aAY!a#S@O#S#TAY#T;'S@O;'S;=`Bq<%lO@O!RA]UOpAYq!]AY!]!^Ao!^;'SAY;'S;=`At<%lOAY!RAtOb!R!RAwP;=`<%lAY!ZBRYkWb!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!ZBtP;=`<%l@O!_COhhSkWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^Dj!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!_DsbhSkWb!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VFQbhSOpAYqrE{rsAYswE{wxAYx!PE{!P!QAY!Q!]E{!]!^GY!^!aAY!a#sE{#s$fAY$f;'SE{;'S;=`G|<%l?AhE{?Ah?BYAY?BY?MnE{?MnOAY!VGaXhSb!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!VHPP;=`<%lE{!_HVP;=`<%lBw!ZHcW!bx`P!a`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t!aIYlhS`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OKQ!O!P-_!P!Q$q!Q!^-_!^!_*V!_!a&X!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!aK_khS`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_*V!_!`&X!`!aMS!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!TM_X`P!a`!cp!eQOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!aNZ!ZhSfQ`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OMz!O!PMz!P!Q$q!Q![Mz![!]Mz!]!^-_!^!_*V!_!a&X!a!c-_!c!}Mz!}#R-_#R#SMz#S#T1k#T#oMz#o#s-_#s$f$q$f$}-_$}%OMz%O%W-_%W%oMz%o%p-_%p&aMz&a&b-_&b1pMz1p4UMz4U4dMz4d4e-_4e$ISMz$IS$I`-_$I`$IbMz$Ib$Je-_$Je$JgMz$Jg$Kh-_$Kh%#tMz%#t&/x-_&/x&EtMz&Et&FV-_&FV;'SMz;'S;:j!#|;:j;=`3X<%l?&r-_?&r?AhMz?Ah?BY$q?BY?MnMz?MnO$q!a!$PP;=`<%lMz!R!$ZY!a`!cpOq*Vqr!$yrs(Vsv*Vwx)ex!a*V!a!b!4t!b;'S*V;'S;=`*s<%lO*V!R!%Q]!a`!cpOr*Vrs(Vsv*Vwx)ex}*V}!O!%y!O!f*V!f!g!']!g#W*V#W#X!0`#X;'S*V;'S;=`*s<%lO*V!R!&QX!a`!cpOr*Vrs(Vsv*Vwx)ex}*V}!O!&m!O;'S*V;'S;=`*s<%lO*V!R!&vV!a`!cp!dPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!'dX!a`!cpOr*Vrs(Vsv*Vwx)ex!q*V!q!r!(P!r;'S*V;'S;=`*s<%lO*V!R!(WX!a`!cpOr*Vrs(Vsv*Vwx)ex!e*V!e!f!(s!f;'S*V;'S;=`*s<%lO*V!R!(zX!a`!cpOr*Vrs(Vsv*Vwx)ex!v*V!v!w!)g!w;'S*V;'S;=`*s<%lO*V!R!)nX!a`!cpOr*Vrs(Vsv*Vwx)ex!{*V!{!|!*Z!|;'S*V;'S;=`*s<%lO*V!R!*bX!a`!cpOr*Vrs(Vsv*Vwx)ex!r*V!r!s!*}!s;'S*V;'S;=`*s<%lO*V!R!+UX!a`!cpOr*Vrs(Vsv*Vwx)ex!g*V!g!h!+q!h;'S*V;'S;=`*s<%lO*V!R!+xY!a`!cpOr!+qrs!,hsv!+qvw!-Swx!.[x!`!+q!`!a!/j!a;'S!+q;'S;=`!0Y<%lO!+qq!,mV!cpOv!,hvx!-Sx!`!,h!`!a!-q!a;'S!,h;'S;=`!.U<%lO!,hP!-VTO!`!-S!`!a!-f!a;'S!-S;'S;=`!-k<%lO!-SP!-kO{PP!-nP;=`<%l!-Sq!-xS!cp{POv(Vx;'S(V;'S;=`(h<%lO(Vq!.XP;=`<%l!,ha!.aX!a`Or!.[rs!-Ssv!.[vw!-Sw!`!.[!`!a!.|!a;'S!.[;'S;=`!/d<%lO!.[a!/TT!a`{POr)esv)ew;'S)e;'S;=`)y<%lO)ea!/gP;=`<%l!.[!R!/sV!a`!cp{POr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!0]P;=`<%l!+q!R!0gX!a`!cpOr*Vrs(Vsv*Vwx)ex#c*V#c#d!1S#d;'S*V;'S;=`*s<%lO*V!R!1ZX!a`!cpOr*Vrs(Vsv*Vwx)ex#V*V#V#W!1v#W;'S*V;'S;=`*s<%lO*V!R!1}X!a`!cpOr*Vrs(Vsv*Vwx)ex#h*V#h#i!2j#i;'S*V;'S;=`*s<%lO*V!R!2qX!a`!cpOr*Vrs(Vsv*Vwx)ex#m*V#m#n!3^#n;'S*V;'S;=`*s<%lO*V!R!3eX!a`!cpOr*Vrs(Vsv*Vwx)ex#d*V#d#e!4Q#e;'S*V;'S;=`*s<%lO*V!R!4XX!a`!cpOr*Vrs(Vsv*Vwx)ex#X*V#X#Y!+q#Y;'S*V;'S;=`*s<%lO*V!R!4{Y!a`!cpOr!4trs!5ksv!4tvw!6Vwx!8]x!a!4t!a!b!:]!b;'S!4t;'S;=`!;r<%lO!4tq!5pV!cpOv!5kvx!6Vx!a!5k!a!b!7W!b;'S!5k;'S;=`!8V<%lO!5kP!6YTO!a!6V!a!b!6i!b;'S!6V;'S;=`!7Q<%lO!6VP!6lTO!`!6V!`!a!6{!a;'S!6V;'S;=`!7Q<%lO!6VP!7QOxPP!7TP;=`<%l!6Vq!7]V!cpOv!5kvx!6Vx!`!5k!`!a!7r!a;'S!5k;'S;=`!8V<%lO!5kq!7yS!cpxPOv(Vx;'S(V;'S;=`(h<%lO(Vq!8YP;=`<%l!5ka!8bX!a`Or!8]rs!6Vsv!8]vw!6Vw!a!8]!a!b!8}!b;'S!8];'S;=`!:V<%lO!8]a!9SX!a`Or!8]rs!6Vsv!8]vw!6Vw!`!8]!`!a!9o!a;'S!8];'S;=`!:V<%lO!8]a!9vT!a`xPOr)esv)ew;'S)e;'S;=`)y<%lO)ea!:YP;=`<%l!8]!R!:dY!a`!cpOr!4trs!5ksv!4tvw!6Vwx!8]x!`!4t!`!a!;S!a;'S!4t;'S;=`!;r<%lO!4t!R!;]V!a`!cpxPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!;uP;=`<%l!4t!V!<TXiS`P!a`!cpOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X\",\n tokenizers: [scriptTokens, styleTokens, textareaTokens, endTag, tagStart, commentContent, 0, 1, 2, 3, 4, 5],\n topRules: {\"Document\":[0,15]},\n dialects: {noMatch: 0, selfClosing: 485},\n tokenPrec: 487\n});\n\nfunction getAttrs(openTag, input) {\n let attrs = Object.create(null);\n for (let att of openTag.getChildren(Attribute)) {\n let name = att.getChild(AttributeName), value = att.getChild(AttributeValue) || att.getChild(UnquotedAttributeValue);\n if (name) attrs[input.read(name.from, name.to)] =\n !value ? \"\" : value.type.id == AttributeValue ? input.read(value.from + 1, value.to - 1) : input.read(value.from, value.to);\n }\n return attrs\n}\n\nfunction findTagName(openTag, input) {\n let tagNameNode = openTag.getChild(TagName);\n return tagNameNode ? input.read(tagNameNode.from, tagNameNode.to) : \" \"\n}\n\nfunction maybeNest(node, input, tags) {\n let attrs;\n for (let tag of tags) {\n if (!tag.attrs || tag.attrs(attrs || (attrs = getAttrs(node.node.parent.firstChild, input))))\n return {parser: tag.parser}\n }\n return null\n}\n\n// tags?: {\n// tag: string,\n// attrs?: ({[attr: string]: string}) => boolean,\n// parser: Parser\n// }[]\n// attributes?: {\n// name: string,\n// tagName?: string,\n// parser: Parser\n// }[]\n \nfunction configureNesting(tags = [], attributes = []) {\n let script = [], style = [], textarea = [], other = [];\n for (let tag of tags) {\n let array = tag.tag == \"script\" ? script : tag.tag == \"style\" ? style : tag.tag == \"textarea\" ? textarea : other;\n array.push(tag);\n }\n let attrs = attributes.length ? Object.create(null) : null;\n for (let attr of attributes) (attrs[attr.name] || (attrs[attr.name] = [])).push(attr);\n\n return parseMixed((node, input) => {\n let id = node.type.id;\n if (id == ScriptText) return maybeNest(node, input, script)\n if (id == StyleText) return maybeNest(node, input, style)\n if (id == TextareaText) return maybeNest(node, input, textarea)\n\n if (id == Element && other.length) {\n let n = node.node, open = n.firstChild, tagName = open && findTagName(open, input), attrs;\n if (tagName) for (let tag of other) {\n if (tag.tag == tagName && (!tag.attrs || tag.attrs(attrs || (attrs = getAttrs(n, input))))) {\n let close = n.lastChild;\n let to = close.type.id == CloseTag ? close.from : n.to;\n if (to > open.to)\n return {parser: tag.parser, overlay: [{from: open.to, to}]}\n }\n }\n }\n\n if (attrs && id == Attribute) {\n let n = node.node, nameNode;\n if (nameNode = n.firstChild) {\n let matches = attrs[input.read(nameNode.from, nameNode.to)];\n if (matches) for (let attr of matches) {\n if (attr.tagName && attr.tagName != findTagName(n.parent, input)) continue\n let value = n.lastChild;\n if (value.type.id == AttributeValue) {\n let from = value.from + 1;\n let last = value.lastChild, to = value.to - (last && last.isError ? 0 : 1);\n if (to > from) return {parser: attr.parser, overlay: [{from, to}]}\n } else if (value.type.id == UnquotedAttributeValue) {\n return {parser: attr.parser, overlay: [{from: value.from, to: value.to}]}\n }\n }\n }\n }\n return null\n })\n}\n\nexport { configureNesting, parser };\n", "import { ExternalTokenizer, LRParser, LocalTokenGroup } from '@lezer/lr';\nimport { styleTags, tags } from '@lezer/highlight';\n\n// This file was generated by lezer-generator. You probably shouldn't edit it.\nconst descendantOp = 99,\n Unit = 1,\n callee = 100,\n identifier = 101,\n VariableName = 2;\n\n/* Hand-written tokenizers for CSS tokens that can't be\n expressed by Lezer's built-in tokenizer. */\n\nconst space = [9, 10, 11, 12, 13, 32, 133, 160, 5760, 8192, 8193, 8194, 8195, 8196, 8197,\n 8198, 8199, 8200, 8201, 8202, 8232, 8233, 8239, 8287, 12288];\nconst colon = 58, parenL = 40, underscore = 95, bracketL = 91, dash = 45, period = 46,\n hash = 35, percent = 37, ampersand = 38, backslash = 92, newline = 10;\n\nfunction isAlpha(ch) { return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || ch >= 161 }\n\nfunction isDigit(ch) { return ch >= 48 && ch <= 57 }\n\nconst identifiers = new ExternalTokenizer((input, stack) => {\n for (let inside = false, dashes = 0, i = 0;; i++) {\n let {next} = input;\n if (isAlpha(next) || next == dash || next == underscore || (inside && isDigit(next))) {\n if (!inside && (next != dash || i > 0)) inside = true;\n if (dashes === i && next == dash) dashes++;\n input.advance();\n } else if (next == backslash && input.peek(1) != newline) {\n input.advance();\n if (input.next > -1) input.advance();\n inside = true;\n } else {\n if (inside)\n input.acceptToken(next == parenL ? callee : dashes == 2 && stack.canShift(VariableName) ? VariableName : identifier);\n break\n }\n }\n});\n\nconst descendant = new ExternalTokenizer(input => {\n if (space.includes(input.peek(-1))) {\n let {next} = input;\n if (isAlpha(next) || next == underscore || next == hash || next == period ||\n next == bracketL || next == colon && isAlpha(input.peek(1)) ||\n next == dash || next == ampersand)\n input.acceptToken(descendantOp);\n }\n});\n\nconst unitToken = new ExternalTokenizer(input => {\n if (!space.includes(input.peek(-1))) {\n let {next} = input;\n if (next == percent) { input.advance(); input.acceptToken(Unit); }\n if (isAlpha(next)) {\n do { input.advance(); } while (isAlpha(input.next))\n input.acceptToken(Unit);\n }\n }\n});\n\nconst cssHighlighting = styleTags({\n \"AtKeyword import charset namespace keyframes media supports\": tags.definitionKeyword,\n \"from to selector\": tags.keyword,\n NamespaceName: tags.namespace,\n KeyframeName: tags.labelName,\n KeyframeRangeName: tags.operatorKeyword,\n TagName: tags.tagName,\n ClassName: tags.className,\n PseudoClassName: tags.constant(tags.className),\n IdName: tags.labelName,\n \"FeatureName PropertyName\": tags.propertyName,\n AttributeName: tags.attributeName,\n NumberLiteral: tags.number,\n KeywordQuery: tags.keyword,\n UnaryQueryOp: tags.operatorKeyword,\n \"CallTag ValueName\": tags.atom,\n VariableName: tags.variableName,\n Callee: tags.operatorKeyword,\n Unit: tags.unit,\n \"UniversalSelector NestingSelector\": tags.definitionOperator,\n MatchOp: tags.compareOperator,\n \"ChildOp SiblingOp, LogicOp\": tags.logicOperator,\n BinOp: tags.arithmeticOperator,\n Important: tags.modifier,\n Comment: tags.blockComment,\n ColorLiteral: tags.color,\n \"ParenthesizedContent StringLiteral\": tags.string,\n \":\": tags.punctuation,\n \"PseudoOp #\": tags.derefOperator,\n \"; ,\": tags.separator,\n \"( )\": tags.paren,\n \"[ ]\": tags.squareBracket,\n \"{ }\": tags.brace\n});\n\n// This file was generated by lezer-generator. You probably shouldn't edit it.\nconst spec_callee = {__proto__:null,lang:32, \"nth-child\":32, \"nth-last-child\":32, \"nth-of-type\":32, \"nth-last-of-type\":32, dir:32, \"host-context\":32, url:60, \"url-prefix\":60, domain:60, regexp:60, selector:138};\nconst spec_AtKeyword = {__proto__:null,\"@import\":118, \"@media\":142, \"@charset\":146, \"@namespace\":150, \"@keyframes\":156, \"@supports\":168};\nconst spec_identifier = {__proto__:null,not:132, only:132};\nconst parser = LRParser.deserialize({\n version: 14,\n states: \":^QYQ[OOO#_Q[OOP#fOWOOOOQP'#Cd'#CdOOQP'#Cc'#CcO#kQ[O'#CfO$_QXO'#CaO$fQ[O'#ChO$qQ[O'#DTO$vQ[O'#DWOOQP'#Em'#EmO${QdO'#DgO%jQ[O'#DtO${QdO'#DvO%{Q[O'#DxO&WQ[O'#D{O&`Q[O'#ERO&nQ[O'#ETOOQS'#El'#ElOOQS'#EW'#EWQYQ[OOO&uQXO'#CdO'jQWO'#DcO'oQWO'#EsO'zQ[O'#EsQOQWOOP(UO#tO'#C_POOO)C@[)C@[OOQP'#Cg'#CgOOQP,59Q,59QO#kQ[O,59QO(aQ[O'#E[O({QWO,58{O)TQ[O,59SO$qQ[O,59oO$vQ[O,59rO(aQ[O,59uO(aQ[O,59wO(aQ[O,59xO)`Q[O'#DbOOQS,58{,58{OOQP'#Ck'#CkOOQO'#DR'#DROOQP,59S,59SO)gQWO,59SO)lQWO,59SOOQP'#DV'#DVOOQP,59o,59oOOQO'#DX'#DXO)qQ`O,59rOOQS'#Cp'#CpO${QdO'#CqO)yQvO'#CsO+ZQtO,5:ROOQO'#Cx'#CxO)lQWO'#CwO+oQWO'#CyO+tQ[O'#DOOOQS'#Ep'#EpOOQO'#Dj'#DjO+|Q[O'#DqO,[QWO'#EtO&`Q[O'#DoO,jQWO'#DrOOQO'#Eu'#EuO)OQWO,5:`O,oQpO,5:bOOQS'#Dz'#DzO,wQWO,5:dO,|Q[O,5:dOOQO'#D}'#D}O-UQWO,5:gO-ZQWO,5:mO-cQWO,5:oOOQS-E8U-E8UO${QdO,59}O-kQ[O'#E^O-xQWO,5;_O-xQWO,5;_POOO'#EV'#EVP.TO#tO,58yPOOO,58y,58yOOQP1G.l1G.lO.zQXO,5:vOOQO-E8Y-E8YOOQS1G.g1G.gOOQP1G.n1G.nO)gQWO1G.nO)lQWO1G.nOOQP1G/Z1G/ZO/XQ`O1G/^O/rQXO1G/aO0YQXO1G/cO0pQXO1G/dO1WQWO,59|O1]Q[O'#DSO1dQdO'#CoOOQP1G/^1G/^O${QdO1G/^O1kQpO,59]OOQS,59_,59_O${QdO,59aO1sQWO1G/mOOQS,59c,59cO1xQ!bO,59eOOQS'#DP'#DPOOQS'#EY'#EYO2QQ[O,59jOOQS,59j,59jO2YQWO'#DjO2eQWO,5:VO2jQWO,5:]O&`Q[O,5:XO&`Q[O'#E_O2rQWO,5;`O2}QWO,5:ZO(aQ[O,5:^OOQS1G/z1G/zOOQS1G/|1G/|OOQS1G0O1G0OO3`QWO1G0OO3eQdO'#EOOOQS1G0R1G0ROOQS1G0X1G0XOOQS1G0Z1G0ZO3pQtO1G/iOOQO,5:x,5:xO4WQ[O,5:xOOQO-E8[-E8[O4eQWO1G0yPOOO-E8T-E8TPOOO1G.e1G.eOOQP7+$Y7+$YOOQP7+$x7+$xO${QdO7+$xOOQS1G/h1G/hO4pQXO'#ErO4wQWO,59nO4|QtO'#EXO5tQdO'#EoO6OQWO,59ZO6TQpO7+$xOOQS1G.w1G.wOOQS1G.{1G.{OOQS7+%X7+%XO6]QWO1G/POOQS-E8W-E8WOOQS1G/U1G/UO${QdO1G/qOOQO1G/w1G/wOOQO1G/s1G/sO6bQWO,5:yOOQO-E8]-E8]O6pQXO1G/xOOQS7+%j7+%jO6wQYO'#CsOOQO'#EQ'#EQO7SQ`O'#EPOOQO'#EP'#EPO7_QWO'#E`O7gQdO,5:jOOQS,5:j,5:jO7rQtO'#E]O${QdO'#E]O8sQdO7+%TOOQO7+%T7+%TOOQO1G0d1G0dO9WQpO<<HdO9`QWO,5;^OOQP1G/Y1G/YOOQS-E8V-E8VO${QdO'#EZO9hQWO,5;ZOOQT1G.u1G.uOOQP<<Hd<<HdOOQS7+$k7+$kO9pQdO7+%]OOQO7+%d7+%dOOQO,5:k,5:kO3hQdO'#EaO7_QWO,5:zOOQS,5:z,5:zOOQS-E8^-E8^OOQS1G0U1G0UO9wQtO,5:wOOQS-E8Z-E8ZOOQO<<Ho<<HoOOQPAN>OAN>OO:xQdO,5:uOOQO-E8X-E8XOOQO<<Hw<<HwOOQO,5:{,5:{OOQO-E8_-E8_OOQS1G0f1G0f\",\n stateData: \";[~O#ZOS#[QQ~OUYOXYO]VO^VOqXOxWO![aO!]ZO!i[O!k]O!m^O!p_O!v`O#XRO#bTO~OQfOUYOXYO]VO^VOqXOxWO![aO!]ZO!i[O!k]O!m^O!p_O!v`O#XeO#bTO~O#U#gP~P!ZO#[jO~O#XlO~O]qO^qOqsOtoOxrO!OtO!RvO#VuO#bnO~O!TwO~P#pO`}O#WzO#XyO~O#X!OO~O#X!QO~OQ![Ob!TOf![Oh![On!YOq!ZO#W!WO#X!SO#e!UO~Ob!^O!d!`O!g!aO#X!]O!T#hP~Oh!fOn!YO#X!eO~Oh!hO#X!hO~Ob!^O!d!`O!g!aO#X!]O~O!Y#hP~P%jO]WX]!WX^WXqWXtWXxWX!OWX!RWX!TWX#VWX#bWX~O]!mO~O!Y!nO#U#gX!S#gX~O#U#gX!S#gX~P!ZO#]!qO#^!qO#_!sO~OUYOXYO]VO^VOqXOxWO#XRO#bTO~OtoO!TwO~O`!zO#WzO#XyO~O!S#gP~P!ZOb#RO~Ob#SO~Op#TO|#UO~OP#WObgXjgX!YgX!dgX!ggX#XgXagXQgXfgXhgXngXqgXtgX!XgX#UgX#WgX#egXpgX!SgX~Ob!^Oj#XO!d!`O!g!aO#X!]O!Y#hP~Ob#[O~Op#`O#X#]O~Ob!^O!d!`O!g!aO#X#aO~Ot#eO!b#dO!T#hX!Y#hX~Ob#hO~Oj#XO!Y#jO~O!Y#kO~Oh#lOn!YO~O!T#mO~O!TwO!b#dO~O!TwO!Y#pO~O!Y#QX#U#QX!S#QX~P!ZO!Y!nO#U#ga!S#ga~O#]!qO#^!qO#_#wO~O]qO^qOqsOxrO!OtO!RvO#VuO#bnO~Ot#Oa!T#Oaa#Oa~P.`Op#yO|#zO~O]qO^qOqsOxrO#bnO~Ot}i!O}i!R}i!T}i#V}ia}i~P/aOt!Pi!O!Pi!R!Pi!T!Pi#V!Pia!Pi~P/aOt!Qi!O!Qi!R!Qi!T!Qi#V!Qia!Qi~P/aO!S#{O~Oa#fP~P(aOa#cP~P${Oa$SOj#XO~O!Y$UO~Oh$VOo$VO~Op$XO#X#]O~O]!`Xa!^X!b!^X~O]$YO~Oa$ZO!b#dO~Ot#eO!T#ha!Y#ha~O!b#dOt!ca!T!ca!Y!caa!ca~O!Y$`O~O!S$gO#X$bO#e$aO~Oj#XOt$iO!X$kO!Y!Vi#U!Vi!S!Vi~P${O!Y#Qa#U#Qa!S#Qa~P!ZO!Y!nO#U#gi!S#gi~Oa#fX~P#pOa$oO~Oj#XOQ!{Xa!{Xb!{Xf!{Xh!{Xn!{Xq!{Xt!{X#W!{X#X!{X#e!{X~Ot$qOa#cX~P${Oa$sO~Oj#XOp$tO~Oa$uO~O!b#dOt#Ra!T#Ra!Y#Ra~Oa$wO~P.`OP#WOtgX!TgX~O#e$aOt!sX!T!sX~Ot$yO!TwO~O!S$}O#X$bO#e$aO~Oj#XOQ#PXb#PXf#PXh#PXn#PXq#PXt#PX!X#PX!Y#PX#U#PX#W#PX#X#PX#e#PX!S#PX~Ot$iO!X%QO!Y!Vq#U!Vq!S!Vq~P${Oj#XOp%RO~OtoOa#fa~Ot$qOa#ca~Oa%UO~P${Oj#XOQ#Pab#Paf#Pah#Pan#Paq#Pat#Pa!X#Pa!Y#Pa#U#Pa#W#Pa#X#Pa#e#Pa!S#Pa~Oa!}at!}a~P${O#Zo#[#ej!R#e~\",\n goto: \"-g#jPPP#kP#nP#w$WP#w$g#wPP$mPPP$s$|$|P%`P$|P$|%z&^PPPP$|&vP&z'Q#wP'W#w'^P#wP#w#wPPP'd'y(WPP#nPP(_(_(i(_P(_P(_(_P#nP#nP#nP(l#nP(o(r(u(|#nP#nP)R)X)h)v)|*S*^*d*n*t*zPPPPPPPPPP+Q+ZP+v+yP,o,r,x-RRkQ_bOPdhw!n#skYOPdhotuvw!n#R#h#skSOPdhotuvw!n#R#h#sQmTR!tnQ{VR!xqQ!x}Q#Z!XR#x!zq![Z]!T!m#S#U#X#q#z$P$Y$i$j$q$v%Sp![Z]!T!m#S#U#X#q#z$P$Y$i$j$q$v%SU$d#m$f$yR$x$cq!XZ]!T!m#S#U#X#q#z$P$Y$i$j$q$v%Sp![Z]!T!m#S#U#X#q#z$P$Y$i$j$q$v%SQ!f^R#l!gT#^!Z#_Q|VR!yqQ!x|R#x!yQ!PWR!{rQ!RXR!|sQxUQ!wpQ#i!cQ#o!jQ#p!kQ${$eR%X$zSgPwQ!phQ#r!nR$l#sZfPhw!n#sa!b[`a!V!^!`#d#eR#b!^R!g^R!i_R#n!iS$e#m$fR%V$yV$c#m$f$yQ!rjR#v!rQdOShPwU!ldh#sR#s!nQ$P#SU$p$P$v%SQ$v$YR%S$qQ#_!ZR$W#_Q$r$PR%T$rQpUS!vp$nR$n#|Q$j#qR%P$jQ!ogS#t!o#uR#u!pQ#f!_R$^#fQ$f#mR$|$fQ$z$eR%W$z_cOPdhw!n#s^UOPdhw!n#sQ!uoQ!}tQ#OuQ#PvQ#|#RR$_#hR$Q#SQ!VZQ!d]Q#V!TQ#q!m[$O#S$P$Y$q$v%SQ$R#UQ$T#XS$h#q$jQ$m#zR%O$iR#}#RQiPR#QwQ!c[Q!kaR#Y!VU!_[a!VQ!j`Q#c!^Q#g!`Q$[#dR$]#e\",\n nodeNames: \"\u26A0 Unit VariableName Comment StyleSheet RuleSet UniversalSelector TagSelector TagName NestingSelector ClassSelector ClassName PseudoClassSelector : :: PseudoClassName PseudoClassName ) ( ArgList ValueName ParenthesizedValue ColorLiteral NumberLiteral StringLiteral BinaryExpression BinOp CallExpression Callee CallLiteral CallTag ParenthesizedContent ] [ LineNames LineName , PseudoClassName ArgList IdSelector # IdName AttributeSelector AttributeName MatchOp ChildSelector ChildOp DescendantSelector SiblingSelector SiblingOp } { Block Declaration PropertyName Important ; ImportStatement AtKeyword import KeywordQuery FeatureQuery FeatureName BinaryQuery LogicOp UnaryQuery UnaryQueryOp ParenthesizedQuery SelectorQuery selector MediaStatement media CharsetStatement charset NamespaceStatement namespace NamespaceName KeyframesStatement keyframes KeyframeName KeyframeList KeyframeSelector KeyframeRangeName SupportsStatement supports AtRule Styles\",\n maxTerm: 117,\n nodeProps: [\n [\"isolate\", -2,3,24,\"\"],\n [\"openedBy\", 17,\"(\",32,\"[\",50,\"{\"],\n [\"closedBy\", 18,\")\",33,\"]\",51,\"}\"]\n ],\n propSources: [cssHighlighting],\n skippedNodes: [0,3,87],\n repeatNodeCount: 11,\n tokenData: \"J^~R!^OX$}X^%u^p$}pq%uqr)Xrs.Rst/utu6duv$}vw7^wx7oxy9^yz9oz{9t{|:_|}?Q}!O?c!O!P@Q!P!Q@i!Q![Ab![!]B]!]!^CX!^!_$}!_!`Cj!`!aC{!a!b$}!b!cDw!c!}$}!}#OFa#O#P$}#P#QFr#Q#R6d#R#T$}#T#UGT#U#c$}#c#dHf#d#o$}#o#pH{#p#q6d#q#rI^#r#sIo#s#y$}#y#z%u#z$f$}$f$g%u$g#BY$}#BY#BZ%u#BZ$IS$}$IS$I_%u$I_$I|$}$I|$JO%u$JO$JT$}$JT$JU%u$JU$KV$}$KV$KW%u$KW&FU$}&FU&FV%u&FV;'S$};'S;=`JW<%lO$}`%QSOy%^z;'S%^;'S;=`%o<%lO%^`%cSo`Oy%^z;'S%^;'S;=`%o<%lO%^`%rP;=`<%l%^~%zh#Z~OX%^X^'f^p%^pq'fqy%^z#y%^#y#z'f#z$f%^$f$g'f$g#BY%^#BY#BZ'f#BZ$IS%^$IS$I_'f$I_$I|%^$I|$JO'f$JO$JT%^$JT$JU'f$JU$KV%^$KV$KW'f$KW&FU%^&FU&FV'f&FV;'S%^;'S;=`%o<%lO%^~'mh#Z~o`OX%^X^'f^p%^pq'fqy%^z#y%^#y#z'f#z$f%^$f$g'f$g#BY%^#BY#BZ'f#BZ$IS%^$IS$I_'f$I_$I|%^$I|$JO'f$JO$JT%^$JT$JU'f$JU$KV%^$KV$KW'f$KW&FU%^&FU&FV'f&FV;'S%^;'S;=`%o<%lO%^l)[UOy%^z#]%^#]#^)n#^;'S%^;'S;=`%o<%lO%^l)sUo`Oy%^z#a%^#a#b*V#b;'S%^;'S;=`%o<%lO%^l*[Uo`Oy%^z#d%^#d#e*n#e;'S%^;'S;=`%o<%lO%^l*sUo`Oy%^z#c%^#c#d+V#d;'S%^;'S;=`%o<%lO%^l+[Uo`Oy%^z#f%^#f#g+n#g;'S%^;'S;=`%o<%lO%^l+sUo`Oy%^z#h%^#h#i,V#i;'S%^;'S;=`%o<%lO%^l,[Uo`Oy%^z#T%^#T#U,n#U;'S%^;'S;=`%o<%lO%^l,sUo`Oy%^z#b%^#b#c-V#c;'S%^;'S;=`%o<%lO%^l-[Uo`Oy%^z#h%^#h#i-n#i;'S%^;'S;=`%o<%lO%^l-uS!X[o`Oy%^z;'S%^;'S;=`%o<%lO%^~.UWOY.RZr.Rrs.ns#O.R#O#P.s#P;'S.R;'S;=`/o<%lO.R~.sOh~~.vRO;'S.R;'S;=`/P;=`O.R~/SXOY.RZr.Rrs.ns#O.R#O#P.s#P;'S.R;'S;=`/o;=`<%l.R<%lO.R~/rP;=`<%l.Rn/zYxQOy%^z!Q%^!Q![0j![!c%^!c!i0j!i#T%^#T#Z0j#Z;'S%^;'S;=`%o<%lO%^l0oYo`Oy%^z!Q%^!Q![1_![!c%^!c!i1_!i#T%^#T#Z1_#Z;'S%^;'S;=`%o<%lO%^l1dYo`Oy%^z!Q%^!Q![2S![!c%^!c!i2S!i#T%^#T#Z2S#Z;'S%^;'S;=`%o<%lO%^l2ZYf[o`Oy%^z!Q%^!Q![2y![!c%^!c!i2y!i#T%^#T#Z2y#Z;'S%^;'S;=`%o<%lO%^l3QYf[o`Oy%^z!Q%^!Q![3p![!c%^!c!i3p!i#T%^#T#Z3p#Z;'S%^;'S;=`%o<%lO%^l3uYo`Oy%^z!Q%^!Q![4e![!c%^!c!i4e!i#T%^#T#Z4e#Z;'S%^;'S;=`%o<%lO%^l4lYf[o`Oy%^z!Q%^!Q![5[![!c%^!c!i5[!i#T%^#T#Z5[#Z;'S%^;'S;=`%o<%lO%^l5aYo`Oy%^z!Q%^!Q![6P![!c%^!c!i6P!i#T%^#T#Z6P#Z;'S%^;'S;=`%o<%lO%^l6WSf[o`Oy%^z;'S%^;'S;=`%o<%lO%^d6gUOy%^z!_%^!_!`6y!`;'S%^;'S;=`%o<%lO%^d7QS|So`Oy%^z;'S%^;'S;=`%o<%lO%^b7cSXQOy%^z;'S%^;'S;=`%o<%lO%^~7rWOY7oZw7owx.nx#O7o#O#P8[#P;'S7o;'S;=`9W<%lO7o~8_RO;'S7o;'S;=`8h;=`O7o~8kXOY7oZw7owx.nx#O7o#O#P8[#P;'S7o;'S;=`9W;=`<%l7o<%lO7o~9ZP;=`<%l7on9cSb^Oy%^z;'S%^;'S;=`%o<%lO%^~9tOa~n9{UUQjWOy%^z!_%^!_!`6y!`;'S%^;'S;=`%o<%lO%^n:fWjW!RQOy%^z!O%^!O!P;O!P!Q%^!Q![>T![;'S%^;'S;=`%o<%lO%^l;TUo`Oy%^z!Q%^!Q![;g![;'S%^;'S;=`%o<%lO%^l;nYo`#e[Oy%^z!Q%^!Q![;g![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^l<cYo`Oy%^z{%^{|=R|}%^}!O=R!O!Q%^!Q![=j![;'S%^;'S;=`%o<%lO%^l=WUo`Oy%^z!Q%^!Q![=j![;'S%^;'S;=`%o<%lO%^l=qUo`#e[Oy%^z!Q%^!Q![=j![;'S%^;'S;=`%o<%lO%^l>[[o`#e[Oy%^z!O%^!O!P;g!P!Q%^!Q![>T![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^n?VSt^Oy%^z;'S%^;'S;=`%o<%lO%^l?hWjWOy%^z!O%^!O!P;O!P!Q%^!Q![>T![;'S%^;'S;=`%o<%lO%^n@VU#bQOy%^z!Q%^!Q![;g![;'S%^;'S;=`%o<%lO%^~@nTjWOy%^z{@}{;'S%^;'S;=`%o<%lO%^~AUSo`#[~Oy%^z;'S%^;'S;=`%o<%lO%^lAg[#e[Oy%^z!O%^!O!P;g!P!Q%^!Q![>T![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^bBbU]QOy%^z![%^![!]Bt!];'S%^;'S;=`%o<%lO%^bB{S^Qo`Oy%^z;'S%^;'S;=`%o<%lO%^nC^S!Y^Oy%^z;'S%^;'S;=`%o<%lO%^dCoS|SOy%^z;'S%^;'S;=`%o<%lO%^bDQU!OQOy%^z!`%^!`!aDd!a;'S%^;'S;=`%o<%lO%^bDkS!OQo`Oy%^z;'S%^;'S;=`%o<%lO%^bDzWOy%^z!c%^!c!}Ed!}#T%^#T#oEd#o;'S%^;'S;=`%o<%lO%^bEk[![Qo`Oy%^z}%^}!OEd!O!Q%^!Q![Ed![!c%^!c!}Ed!}#T%^#T#oEd#o;'S%^;'S;=`%o<%lO%^nFfSq^Oy%^z;'S%^;'S;=`%o<%lO%^nFwSp^Oy%^z;'S%^;'S;=`%o<%lO%^bGWUOy%^z#b%^#b#cGj#c;'S%^;'S;=`%o<%lO%^bGoUo`Oy%^z#W%^#W#XHR#X;'S%^;'S;=`%o<%lO%^bHYS!bQo`Oy%^z;'S%^;'S;=`%o<%lO%^bHiUOy%^z#f%^#f#gHR#g;'S%^;'S;=`%o<%lO%^fIQS!TUOy%^z;'S%^;'S;=`%o<%lO%^nIcS!S^Oy%^z;'S%^;'S;=`%o<%lO%^fItU!RQOy%^z!_%^!_!`6y!`;'S%^;'S;=`%o<%lO%^`JZP;=`<%l$}\",\n tokenizers: [descendant, unitToken, identifiers, 1, 2, 3, 4, new LocalTokenGroup(\"m~RRYZ[z{a~~g~aO#^~~dP!P!Qg~lO#_~~\", 28, 105)],\n topRules: {\"StyleSheet\":[0,4],\"Styles\":[1,86]},\n specialized: [{term: 100, get: (value) => spec_callee[value] || -1},{term: 58, get: (value) => spec_AtKeyword[value] || -1},{term: 101, get: (value) => spec_identifier[value] || -1}],\n tokenPrec: 1200\n});\n\nexport { parser };\n", "import { parser } from '@lezer/css';\nimport { syntaxTree, LRLanguage, indentNodeProp, continuedIndent, foldNodeProp, foldInside, LanguageSupport } from '@codemirror/language';\nimport { NodeWeakMap, IterMode } from '@lezer/common';\n\nlet _properties = null;\nfunction properties() {\n if (!_properties && typeof document == \"object\" && document.body) {\n let { style } = document.body, names = [], seen = new Set;\n for (let prop in style)\n if (prop != \"cssText\" && prop != \"cssFloat\") {\n if (typeof style[prop] == \"string\") {\n if (/[A-Z]/.test(prop))\n prop = prop.replace(/[A-Z]/g, ch => \"-\" + ch.toLowerCase());\n if (!seen.has(prop)) {\n names.push(prop);\n seen.add(prop);\n }\n }\n }\n _properties = names.sort().map(name => ({ type: \"property\", label: name }));\n }\n return _properties || [];\n}\nconst pseudoClasses = /*@__PURE__*/[\n \"active\", \"after\", \"any-link\", \"autofill\", \"backdrop\", \"before\",\n \"checked\", \"cue\", \"default\", \"defined\", \"disabled\", \"empty\",\n \"enabled\", \"file-selector-button\", \"first\", \"first-child\",\n \"first-letter\", \"first-line\", \"first-of-type\", \"focus\",\n \"focus-visible\", \"focus-within\", \"fullscreen\", \"has\", \"host\",\n \"host-context\", \"hover\", \"in-range\", \"indeterminate\", \"invalid\",\n \"is\", \"lang\", \"last-child\", \"last-of-type\", \"left\", \"link\", \"marker\",\n \"modal\", \"not\", \"nth-child\", \"nth-last-child\", \"nth-last-of-type\",\n \"nth-of-type\", \"only-child\", \"only-of-type\", \"optional\", \"out-of-range\",\n \"part\", \"placeholder\", \"placeholder-shown\", \"read-only\", \"read-write\",\n \"required\", \"right\", \"root\", \"scope\", \"selection\", \"slotted\", \"target\",\n \"target-text\", \"valid\", \"visited\", \"where\"\n].map(name => ({ type: \"class\", label: name }));\nconst values = /*@__PURE__*/[\n \"above\", \"absolute\", \"activeborder\", \"additive\", \"activecaption\", \"after-white-space\",\n \"ahead\", \"alias\", \"all\", \"all-scroll\", \"alphabetic\", \"alternate\", \"always\",\n \"antialiased\", \"appworkspace\", \"asterisks\", \"attr\", \"auto\", \"auto-flow\", \"avoid\", \"avoid-column\",\n \"avoid-page\", \"avoid-region\", \"axis-pan\", \"background\", \"backwards\", \"baseline\", \"below\",\n \"bidi-override\", \"blink\", \"block\", \"block-axis\", \"bold\", \"bolder\", \"border\", \"border-box\",\n \"both\", \"bottom\", \"break\", \"break-all\", \"break-word\", \"bullets\", \"button\", \"button-bevel\",\n \"buttonface\", \"buttonhighlight\", \"buttonshadow\", \"buttontext\", \"calc\", \"capitalize\",\n \"caps-lock-indicator\", \"caption\", \"captiontext\", \"caret\", \"cell\", \"center\", \"checkbox\", \"circle\",\n \"cjk-decimal\", \"clear\", \"clip\", \"close-quote\", \"col-resize\", \"collapse\", \"color\", \"color-burn\",\n \"color-dodge\", \"column\", \"column-reverse\", \"compact\", \"condensed\", \"contain\", \"content\",\n \"contents\", \"content-box\", \"context-menu\", \"continuous\", \"copy\", \"counter\", \"counters\", \"cover\",\n \"crop\", \"cross\", \"crosshair\", \"currentcolor\", \"cursive\", \"cyclic\", \"darken\", \"dashed\", \"decimal\",\n \"decimal-leading-zero\", \"default\", \"default-button\", \"dense\", \"destination-atop\", \"destination-in\",\n \"destination-out\", \"destination-over\", \"difference\", \"disc\", \"discard\", \"disclosure-closed\",\n \"disclosure-open\", \"document\", \"dot-dash\", \"dot-dot-dash\", \"dotted\", \"double\", \"down\", \"e-resize\",\n \"ease\", \"ease-in\", \"ease-in-out\", \"ease-out\", \"element\", \"ellipse\", \"ellipsis\", \"embed\", \"end\",\n \"ethiopic-abegede-gez\", \"ethiopic-halehame-aa-er\", \"ethiopic-halehame-gez\", \"ew-resize\", \"exclusion\",\n \"expanded\", \"extends\", \"extra-condensed\", \"extra-expanded\", \"fantasy\", \"fast\", \"fill\", \"fill-box\",\n \"fixed\", \"flat\", \"flex\", \"flex-end\", \"flex-start\", \"footnotes\", \"forwards\", \"from\",\n \"geometricPrecision\", \"graytext\", \"grid\", \"groove\", \"hand\", \"hard-light\", \"help\", \"hidden\", \"hide\",\n \"higher\", \"highlight\", \"highlighttext\", \"horizontal\", \"hsl\", \"hsla\", \"hue\", \"icon\", \"ignore\",\n \"inactiveborder\", \"inactivecaption\", \"inactivecaptiontext\", \"infinite\", \"infobackground\", \"infotext\",\n \"inherit\", \"initial\", \"inline\", \"inline-axis\", \"inline-block\", \"inline-flex\", \"inline-grid\",\n \"inline-table\", \"inset\", \"inside\", \"intrinsic\", \"invert\", \"italic\", \"justify\", \"keep-all\",\n \"landscape\", \"large\", \"larger\", \"left\", \"level\", \"lighter\", \"lighten\", \"line-through\", \"linear\",\n \"linear-gradient\", \"lines\", \"list-item\", \"listbox\", \"listitem\", \"local\", \"logical\", \"loud\", \"lower\",\n \"lower-hexadecimal\", \"lower-latin\", \"lower-norwegian\", \"lowercase\", \"ltr\", \"luminosity\", \"manipulation\",\n \"match\", \"matrix\", \"matrix3d\", \"medium\", \"menu\", \"menutext\", \"message-box\", \"middle\", \"min-intrinsic\",\n \"mix\", \"monospace\", \"move\", \"multiple\", \"multiple_mask_images\", \"multiply\", \"n-resize\", \"narrower\",\n \"ne-resize\", \"nesw-resize\", \"no-close-quote\", \"no-drop\", \"no-open-quote\", \"no-repeat\", \"none\",\n \"normal\", \"not-allowed\", \"nowrap\", \"ns-resize\", \"numbers\", \"numeric\", \"nw-resize\", \"nwse-resize\",\n \"oblique\", \"opacity\", \"open-quote\", \"optimizeLegibility\", \"optimizeSpeed\", \"outset\", \"outside\",\n \"outside-shape\", \"overlay\", \"overline\", \"padding\", \"padding-box\", \"painted\", \"page\", \"paused\",\n \"perspective\", \"pinch-zoom\", \"plus-darker\", \"plus-lighter\", \"pointer\", \"polygon\", \"portrait\",\n \"pre\", \"pre-line\", \"pre-wrap\", \"preserve-3d\", \"progress\", \"push-button\", \"radial-gradient\", \"radio\",\n \"read-only\", \"read-write\", \"read-write-plaintext-only\", \"rectangle\", \"region\", \"relative\", \"repeat\",\n \"repeating-linear-gradient\", \"repeating-radial-gradient\", \"repeat-x\", \"repeat-y\", \"reset\", \"reverse\",\n \"rgb\", \"rgba\", \"ridge\", \"right\", \"rotate\", \"rotate3d\", \"rotateX\", \"rotateY\", \"rotateZ\", \"round\",\n \"row\", \"row-resize\", \"row-reverse\", \"rtl\", \"run-in\", \"running\", \"s-resize\", \"sans-serif\", \"saturation\",\n \"scale\", \"scale3d\", \"scaleX\", \"scaleY\", \"scaleZ\", \"screen\", \"scroll\", \"scrollbar\", \"scroll-position\",\n \"se-resize\", \"self-start\", \"self-end\", \"semi-condensed\", \"semi-expanded\", \"separate\", \"serif\", \"show\",\n \"single\", \"skew\", \"skewX\", \"skewY\", \"skip-white-space\", \"slide\", \"slider-horizontal\",\n \"slider-vertical\", \"sliderthumb-horizontal\", \"sliderthumb-vertical\", \"slow\", \"small\", \"small-caps\",\n \"small-caption\", \"smaller\", \"soft-light\", \"solid\", \"source-atop\", \"source-in\", \"source-out\",\n \"source-over\", \"space\", \"space-around\", \"space-between\", \"space-evenly\", \"spell-out\", \"square\", \"start\",\n \"static\", \"status-bar\", \"stretch\", \"stroke\", \"stroke-box\", \"sub\", \"subpixel-antialiased\", \"svg_masks\",\n \"super\", \"sw-resize\", \"symbolic\", \"symbols\", \"system-ui\", \"table\", \"table-caption\", \"table-cell\",\n \"table-column\", \"table-column-group\", \"table-footer-group\", \"table-header-group\", \"table-row\",\n \"table-row-group\", \"text\", \"text-bottom\", \"text-top\", \"textarea\", \"textfield\", \"thick\", \"thin\",\n \"threeddarkshadow\", \"threedface\", \"threedhighlight\", \"threedlightshadow\", \"threedshadow\", \"to\", \"top\",\n \"transform\", \"translate\", \"translate3d\", \"translateX\", \"translateY\", \"translateZ\", \"transparent\",\n \"ultra-condensed\", \"ultra-expanded\", \"underline\", \"unidirectional-pan\", \"unset\", \"up\", \"upper-latin\",\n \"uppercase\", \"url\", \"var\", \"vertical\", \"vertical-text\", \"view-box\", \"visible\", \"visibleFill\",\n \"visiblePainted\", \"visibleStroke\", \"visual\", \"w-resize\", \"wait\", \"wave\", \"wider\", \"window\", \"windowframe\",\n \"windowtext\", \"words\", \"wrap\", \"wrap-reverse\", \"x-large\", \"x-small\", \"xor\", \"xx-large\", \"xx-small\"\n].map(name => ({ type: \"keyword\", label: name })).concat(/*@__PURE__*/[\n \"aliceblue\", \"antiquewhite\", \"aqua\", \"aquamarine\", \"azure\", \"beige\",\n \"bisque\", \"black\", \"blanchedalmond\", \"blue\", \"blueviolet\", \"brown\",\n \"burlywood\", \"cadetblue\", \"chartreuse\", \"chocolate\", \"coral\", \"cornflowerblue\",\n \"cornsilk\", \"crimson\", \"cyan\", \"darkblue\", \"darkcyan\", \"darkgoldenrod\",\n \"darkgray\", \"darkgreen\", \"darkkhaki\", \"darkmagenta\", \"darkolivegreen\",\n \"darkorange\", \"darkorchid\", \"darkred\", \"darksalmon\", \"darkseagreen\",\n \"darkslateblue\", \"darkslategray\", \"darkturquoise\", \"darkviolet\",\n \"deeppink\", \"deepskyblue\", \"dimgray\", \"dodgerblue\", \"firebrick\",\n \"floralwhite\", \"forestgreen\", \"fuchsia\", \"gainsboro\", \"ghostwhite\",\n \"gold\", \"goldenrod\", \"gray\", \"grey\", \"green\", \"greenyellow\", \"honeydew\",\n \"hotpink\", \"indianred\", \"indigo\", \"ivory\", \"khaki\", \"lavender\",\n \"lavenderblush\", \"lawngreen\", \"lemonchiffon\", \"lightblue\", \"lightcoral\",\n \"lightcyan\", \"lightgoldenrodyellow\", \"lightgray\", \"lightgreen\", \"lightpink\",\n \"lightsalmon\", \"lightseagreen\", \"lightskyblue\", \"lightslategray\",\n \"lightsteelblue\", \"lightyellow\", \"lime\", \"limegreen\", \"linen\", \"magenta\",\n \"maroon\", \"mediumaquamarine\", \"mediumblue\", \"mediumorchid\", \"mediumpurple\",\n \"mediumseagreen\", \"mediumslateblue\", \"mediumspringgreen\", \"mediumturquoise\",\n \"mediumvioletred\", \"midnightblue\", \"mintcream\", \"mistyrose\", \"moccasin\",\n \"navajowhite\", \"navy\", \"oldlace\", \"olive\", \"olivedrab\", \"orange\", \"orangered\",\n \"orchid\", \"palegoldenrod\", \"palegreen\", \"paleturquoise\", \"palevioletred\",\n \"papayawhip\", \"peachpuff\", \"peru\", \"pink\", \"plum\", \"powderblue\",\n \"purple\", \"rebeccapurple\", \"red\", \"rosybrown\", \"royalblue\", \"saddlebrown\",\n \"salmon\", \"sandybrown\", \"seagreen\", \"seashell\", \"sienna\", \"silver\", \"skyblue\",\n \"slateblue\", \"slategray\", \"snow\", \"springgreen\", \"steelblue\", \"tan\",\n \"teal\", \"thistle\", \"tomato\", \"turquoise\", \"violet\", \"wheat\", \"white\",\n \"whitesmoke\", \"yellow\", \"yellowgreen\"\n].map(name => ({ type: \"constant\", label: name })));\nconst tags = /*@__PURE__*/[\n \"a\", \"abbr\", \"address\", \"article\", \"aside\", \"b\", \"bdi\", \"bdo\", \"blockquote\", \"body\",\n \"br\", \"button\", \"canvas\", \"caption\", \"cite\", \"code\", \"col\", \"colgroup\", \"dd\", \"del\",\n \"details\", \"dfn\", \"dialog\", \"div\", \"dl\", \"dt\", \"em\", \"figcaption\", \"figure\", \"footer\",\n \"form\", \"header\", \"hgroup\", \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"hr\", \"html\", \"i\", \"iframe\",\n \"img\", \"input\", \"ins\", \"kbd\", \"label\", \"legend\", \"li\", \"main\", \"meter\", \"nav\", \"ol\", \"output\",\n \"p\", \"pre\", \"ruby\", \"section\", \"select\", \"small\", \"source\", \"span\", \"strong\", \"sub\", \"summary\",\n \"sup\", \"table\", \"tbody\", \"td\", \"template\", \"textarea\", \"tfoot\", \"th\", \"thead\", \"tr\", \"u\", \"ul\"\n].map(name => ({ type: \"type\", label: name }));\nconst identifier = /^(\\w[\\w-]*|-\\w[\\w-]*|)$/, variable = /^-(-[\\w-]*)?$/;\nfunction isVarArg(node, doc) {\n var _a;\n if (node.name == \"(\" || node.type.isError)\n node = node.parent || node;\n if (node.name != \"ArgList\")\n return false;\n let callee = (_a = node.parent) === null || _a === void 0 ? void 0 : _a.firstChild;\n if ((callee === null || callee === void 0 ? void 0 : callee.name) != \"Callee\")\n return false;\n return doc.sliceString(callee.from, callee.to) == \"var\";\n}\nconst VariablesByNode = /*@__PURE__*/new NodeWeakMap();\nconst declSelector = [\"Declaration\"];\nfunction astTop(node) {\n for (let cur = node;;) {\n if (cur.type.isTop)\n return cur;\n if (!(cur = cur.parent))\n return node;\n }\n}\nfunction variableNames(doc, node, isVariable) {\n if (node.to - node.from > 4096) {\n let known = VariablesByNode.get(node);\n if (known)\n return known;\n let result = [], seen = new Set, cursor = node.cursor(IterMode.IncludeAnonymous);\n if (cursor.firstChild())\n do {\n for (let option of variableNames(doc, cursor.node, isVariable))\n if (!seen.has(option.label)) {\n seen.add(option.label);\n result.push(option);\n }\n } while (cursor.nextSibling());\n VariablesByNode.set(node, result);\n return result;\n }\n else {\n let result = [], seen = new Set;\n node.cursor().iterate(node => {\n var _a;\n if (isVariable(node) && node.matchContext(declSelector) && ((_a = node.node.nextSibling) === null || _a === void 0 ? void 0 : _a.name) == \":\") {\n let name = doc.sliceString(node.from, node.to);\n if (!seen.has(name)) {\n seen.add(name);\n result.push({ label: name, type: \"variable\" });\n }\n }\n });\n return result;\n }\n}\n/**\nCreate a completion source for a CSS dialect, providing a\npredicate for determining what kind of syntax node can act as a\ncompletable variable. This is used by language modes like Sass and\nLess to reuse this package's completion logic.\n*/\nconst defineCSSCompletionSource = (isVariable) => context => {\n let { state, pos } = context, node = syntaxTree(state).resolveInner(pos, -1);\n let isDash = node.type.isError && node.from == node.to - 1 && state.doc.sliceString(node.from, node.to) == \"-\";\n if (node.name == \"PropertyName\" ||\n (isDash || node.name == \"TagName\") && /^(Block|Styles)$/.test(node.resolve(node.to).name))\n return { from: node.from, options: properties(), validFor: identifier };\n if (node.name == \"ValueName\")\n return { from: node.from, options: values, validFor: identifier };\n if (node.name == \"PseudoClassName\")\n return { from: node.from, options: pseudoClasses, validFor: identifier };\n if (isVariable(node) || (context.explicit || isDash) && isVarArg(node, state.doc))\n return { from: isVariable(node) || isDash ? node.from : pos,\n options: variableNames(state.doc, astTop(node), isVariable),\n validFor: variable };\n if (node.name == \"TagName\") {\n for (let { parent } = node; parent; parent = parent.parent)\n if (parent.name == \"Block\")\n return { from: node.from, options: properties(), validFor: identifier };\n return { from: node.from, options: tags, validFor: identifier };\n }\n if (!context.explicit)\n return null;\n let above = node.resolve(pos), before = above.childBefore(pos);\n if (before && before.name == \":\" && above.name == \"PseudoClassSelector\")\n return { from: pos, options: pseudoClasses, validFor: identifier };\n if (before && before.name == \":\" && above.name == \"Declaration\" || above.name == \"ArgList\")\n return { from: pos, options: values, validFor: identifier };\n if (above.name == \"Block\" || above.name == \"Styles\")\n return { from: pos, options: properties(), validFor: identifier };\n return null;\n};\n/**\nCSS property, variable, and value keyword completion source.\n*/\nconst cssCompletionSource = /*@__PURE__*/defineCSSCompletionSource(n => n.name == \"VariableName\");\n\n/**\nA language provider based on the [Lezer CSS\nparser](https://github.com/lezer-parser/css), extended with\nhighlighting and indentation information.\n*/\nconst cssLanguage = /*@__PURE__*/LRLanguage.define({\n name: \"css\",\n parser: /*@__PURE__*/parser.configure({\n props: [\n /*@__PURE__*/indentNodeProp.add({\n Declaration: /*@__PURE__*/continuedIndent()\n }),\n /*@__PURE__*/foldNodeProp.add({\n \"Block KeyframeList\": foldInside\n })\n ]\n }),\n languageData: {\n commentTokens: { block: { open: \"/*\", close: \"*/\" } },\n indentOnInput: /^\\s*\\}$/,\n wordChars: \"-\"\n }\n});\n/**\nLanguage support for CSS.\n*/\nfunction css() {\n return new LanguageSupport(cssLanguage, cssLanguage.data.of({ autocomplete: cssCompletionSource }));\n}\n\nexport { css, cssCompletionSource, cssLanguage, defineCSSCompletionSource };\n", "import { ContextTracker, ExternalTokenizer, LRParser, LocalTokenGroup } from '@lezer/lr';\nimport { styleTags, tags } from '@lezer/highlight';\n\n// This file was generated by lezer-generator. You probably shouldn't edit it.\nconst noSemi = 309,\n incdec = 1,\n incdecPrefix = 2,\n JSXStartTag = 3,\n insertSemi = 310,\n spaces = 312,\n newline = 313,\n LineComment = 4,\n BlockComment = 5,\n Dialect_jsx = 0;\n\n/* Hand-written tokenizers for JavaScript tokens that can't be\n expressed by lezer's built-in tokenizer. */\n\nconst space = [9, 10, 11, 12, 13, 32, 133, 160, 5760, 8192, 8193, 8194, 8195, 8196, 8197, 8198, 8199, 8200,\n 8201, 8202, 8232, 8233, 8239, 8287, 12288];\n\nconst braceR = 125, semicolon = 59, slash = 47, star = 42, plus = 43, minus = 45, lt = 60, comma = 44;\n\nconst trackNewline = new ContextTracker({\n start: false,\n shift(context, term) {\n return term == LineComment || term == BlockComment || term == spaces ? context : term == newline\n },\n strict: false\n});\n\nconst insertSemicolon = new ExternalTokenizer((input, stack) => {\n let {next} = input;\n if (next == braceR || next == -1 || stack.context)\n input.acceptToken(insertSemi);\n}, {contextual: true, fallback: true});\n\nconst noSemicolon = new ExternalTokenizer((input, stack) => {\n let {next} = input, after;\n if (space.indexOf(next) > -1) return\n if (next == slash && ((after = input.peek(1)) == slash || after == star)) return\n if (next != braceR && next != semicolon && next != -1 && !stack.context)\n input.acceptToken(noSemi);\n}, {contextual: true});\n\nconst incdecToken = new ExternalTokenizer((input, stack) => {\n let {next} = input;\n if (next == plus || next == minus) {\n input.advance();\n if (next == input.next) {\n input.advance();\n let mayPostfix = !stack.context && stack.canShift(incdec);\n input.acceptToken(mayPostfix ? incdec : incdecPrefix);\n }\n }\n}, {contextual: true});\n\nfunction identifierChar(ch, start) {\n return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || ch == 95 || ch >= 192 ||\n !start && ch >= 48 && ch <= 57\n}\n\nconst jsx = new ExternalTokenizer((input, stack) => {\n if (input.next != lt || !stack.dialectEnabled(Dialect_jsx)) return\n input.advance();\n if (input.next == slash) return\n // Scan for an identifier followed by a comma or 'extends', don't\n // treat this as a start tag if present.\n let back = 0;\n while (space.indexOf(input.next) > -1) { input.advance(); back++; }\n if (identifierChar(input.next, true)) {\n input.advance();\n back++;\n while (identifierChar(input.next, false)) { input.advance(); back++; }\n while (space.indexOf(input.next) > -1) { input.advance(); back++; }\n if (input.next == comma) return\n for (let i = 0;; i++) {\n if (i == 7) {\n if (!identifierChar(input.next, true)) return\n break\n }\n if (input.next != \"extends\".charCodeAt(i)) break\n input.advance();\n back++;\n }\n }\n input.acceptToken(JSXStartTag, -back);\n});\n\nconst jsHighlight = styleTags({\n \"get set async static\": tags.modifier,\n \"for while do if else switch try catch finally return throw break continue default case\": tags.controlKeyword,\n \"in of await yield void typeof delete instanceof\": tags.operatorKeyword,\n \"let var const using function class extends\": tags.definitionKeyword,\n \"import export from\": tags.moduleKeyword,\n \"with debugger as new\": tags.keyword,\n TemplateString: tags.special(tags.string),\n super: tags.atom,\n BooleanLiteral: tags.bool,\n this: tags.self,\n null: tags.null,\n Star: tags.modifier,\n VariableName: tags.variableName,\n \"CallExpression/VariableName TaggedTemplateExpression/VariableName\": tags.function(tags.variableName),\n VariableDefinition: tags.definition(tags.variableName),\n Label: tags.labelName,\n PropertyName: tags.propertyName,\n PrivatePropertyName: tags.special(tags.propertyName),\n \"CallExpression/MemberExpression/PropertyName\": tags.function(tags.propertyName),\n \"FunctionDeclaration/VariableDefinition\": tags.function(tags.definition(tags.variableName)),\n \"ClassDeclaration/VariableDefinition\": tags.definition(tags.className),\n PropertyDefinition: tags.definition(tags.propertyName),\n PrivatePropertyDefinition: tags.definition(tags.special(tags.propertyName)),\n UpdateOp: tags.updateOperator,\n \"LineComment Hashbang\": tags.lineComment,\n BlockComment: tags.blockComment,\n Number: tags.number,\n String: tags.string,\n Escape: tags.escape,\n ArithOp: tags.arithmeticOperator,\n LogicOp: tags.logicOperator,\n BitOp: tags.bitwiseOperator,\n CompareOp: tags.compareOperator,\n RegExp: tags.regexp,\n Equals: tags.definitionOperator,\n Arrow: tags.function(tags.punctuation),\n \": Spread\": tags.punctuation,\n \"( )\": tags.paren,\n \"[ ]\": tags.squareBracket,\n \"{ }\": tags.brace,\n \"InterpolationStart InterpolationEnd\": tags.special(tags.brace),\n \".\": tags.derefOperator,\n \", ;\": tags.separator,\n \"@\": tags.meta,\n\n TypeName: tags.typeName,\n TypeDefinition: tags.definition(tags.typeName),\n \"type enum interface implements namespace module declare\": tags.definitionKeyword,\n \"abstract global Privacy readonly override\": tags.modifier,\n \"is keyof unique infer\": tags.operatorKeyword,\n\n JSXAttributeValue: tags.attributeValue,\n JSXText: tags.content,\n \"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag\": tags.angleBracket,\n \"JSXIdentifier JSXNameSpacedName\": tags.tagName,\n \"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName\": tags.attributeName,\n \"JSXBuiltin/JSXIdentifier\": tags.standard(tags.tagName)\n});\n\n// This file was generated by lezer-generator. You probably shouldn't edit it.\nconst spec_identifier = {__proto__:null,export:18, as:23, from:31, default:34, async:39, function:40, extends:52, this:56, true:64, false:64, null:76, void:80, typeof:84, super:102, new:136, delete:152, yield:161, await:165, class:170, public:227, private:227, protected:227, readonly:229, instanceof:248, satisfies:251, in:252, const:254, import:286, keyof:339, unique:343, infer:349, is:385, abstract:405, implements:407, type:409, let:412, var:414, using:417, interface:423, enum:427, namespace:433, module:435, declare:439, global:443, for:462, of:471, while:474, with:478, do:482, if:486, else:488, switch:492, case:498, try:504, catch:508, finally:512, return:516, throw:520, break:524, continue:528, debugger:532};\nconst spec_word = {__proto__:null,async:123, get:125, set:127, declare:187, public:189, private:189, protected:189, static:191, abstract:193, override:195, readonly:201, accessor:203, new:389};\nconst spec_LessThan = {__proto__:null,\"<\":143};\nconst parser = LRParser.deserialize({\n version: 14,\n states: \"$<UO%TQ^OOO%[Q^OOO'_Q`OOP(lOWOOO*zQ08SO'#ChO+RO!bO'#CiO+aO#tO'#CiO+oO?MpO'#D^O.QQ^O'#DdO.bQ^O'#DoO%[Q^O'#DyO0fQ^O'#EROOQ07b'#EZ'#EZO1PQWO'#EWOOQO'#El'#ElOOQO'#Ie'#IeO1XQWO'#GmO1dQWO'#EkO1iQWO'#EkO3kQ08SO'#JiO6[Q08SO'#JjO6xQWO'#FZO6}Q&jO'#FqOOQ07b'#Fc'#FcO7YO,YO'#FcO7hQ7[O'#FxO9UQWO'#FwOOQ07b'#Jj'#JjOOQ07`'#Ji'#JiO9ZQWO'#GqOOQU'#KU'#KUO9fQWO'#IRO9kQ07hO'#ISOOQU'#JW'#JWOOQU'#IW'#IWQ`Q^OOO`Q^OOO%[Q^O'#DqO9sQ^O'#D}O9zQ^O'#EPO9aQWO'#GmO:RQ7[O'#CnO:aQWO'#EjO:lQWO'#EuO:qQ7[O'#FbO;`QWO'#GmOOQO'#KV'#KVO;eQWO'#KVO;sQWO'#GuO;sQWO'#GvO;sQWO'#GxO9aQWO'#G{O<jQWO'#HOO>RQWO'#CdO>cQWO'#H[O>kQWO'#HbO>kQWO'#HdO`Q^O'#HfO>kQWO'#HhO>kQWO'#HkO>pQWO'#HqO>uQ07iO'#HwO%[Q^O'#HyO?QQ07iO'#H{O?]Q07iO'#H}O9kQ07hO'#IPO?hQ08SO'#ChO@jQ`O'#DiQOQWOOO%[Q^O'#EPOAQQWO'#ESO:RQ7[O'#EjOA]QWO'#EjOAhQpO'#FbOOQU'#Cf'#CfOOQ07`'#Dn'#DnOOQ07`'#Jm'#JmO%[Q^O'#JmOOQO'#Jq'#JqOOQO'#Ib'#IbOBhQ`O'#EcOOQ07`'#Eb'#EbOCdQ07pO'#EcOCnQ`O'#EVOOQO'#Jp'#JpODSQ`O'#JqOEaQ`O'#EVOCnQ`O'#EcPEnO!0LbO'#CaPOOO)CDu)CDuOOOO'#IX'#IXOEyO!bO,59TOOQ07b,59T,59TOOOO'#IY'#IYOFXO#tO,59TO%[Q^O'#D`OOOO'#I['#I[OFgO?MpO,59xOOQ07b,59x,59xOFuQ^O'#I]OGYQWO'#JkOI[QrO'#JkO+}Q^O'#JkOIcQWO,5:OOIyQWO'#ElOJWQWO'#JyOJcQWO'#JxOJcQWO'#JxOJkQWO,5;YOJpQWO'#JwOOQ07f,5:Z,5:ZOJwQ^O,5:ZOLxQ08SO,5:eOMiQWO,5:mONSQ07hO'#JvONZQWO'#JuO9ZQWO'#JuONoQWO'#JuONwQWO,5;XON|QWO'#JuO!#UQrO'#JjOOQ07b'#Ch'#ChO%[Q^O'#ERO!#tQpO,5:rOOQO'#Jr'#JrOOQO-E<c-E<cO9aQWO,5=XO!$[QWO,5=XO!$aQ^O,5;VO!&dQ7[O'#EgO!'}QWO,5;VO!)mQ7[O'#DsO!)tQ^O'#DxO!*OQ`O,5;`O!*WQ`O,5;`O%[Q^O,5;`OOQU'#FR'#FROOQU'#FT'#FTO%[Q^O,5;aO%[Q^O,5;aO%[Q^O,5;aO%[Q^O,5;aO%[Q^O,5;aO%[Q^O,5;aO%[Q^O,5;aO%[Q^O,5;aO%[Q^O,5;aO%[Q^O,5;aO%[Q^O,5;aOOQU'#FX'#FXO!*fQ^O,5;rOOQ07b,5;w,5;wOOQ07b,5;x,5;xO!,iQWO,5;xOOQ07b,5;y,5;yO%[Q^O'#IiO!,qQ07hO,5<eO!&dQ7[O,5;aO!-`Q7[O,5;aO%[Q^O,5;uO!-gQ&jO'#FgO!.dQ&jO'#J}O!.OQ&jO'#J}O!.kQ&jO'#J}OOQO'#J}'#J}O!/PQ&jO,5<POOOS,5<],5<]O!/bQ^O'#FsOOOS'#Ih'#IhO7YO,YO,5;}O!/iQ&jO'#FuOOQ07b,5;},5;}O!0YQMhO'#CuOOQ07b'#Cy'#CyO!0mQWO'#CyO!0rO?MpO'#C}O!1`Q7[O,5<bO!1gQWO,5<dO!3SQ!LQO'#GSO!3aQWO'#GTO!3fQWO'#GTO!3kQ!LQO'#GXO!4jQ`O'#G]OOQO'#Gh'#GhO!(SQ7[O'#GgOOQO'#Gj'#GjO!(SQ7[O'#GiO!5]QMhO'#JdOOQ07b'#Jd'#JdO!5gQWO'#JcO!5uQWO'#JbO!5}QWO'#CtOOQ07b'#Cw'#CwOOQ07b'#DR'#DROOQ07b'#DT'#DTO1SQWO'#DVO!(SQ7[O'#FzO!(SQ7[O'#F|O!6VQWO'#GOO!6[QWO'#GPO!3fQWO'#GVO!(SQ7[O'#G[O!6aQWO'#EmO!7OQWO,5<cOOQ07`'#Cq'#CqO!7WQWO'#EnO!8QQ`O'#EoOOQ07`'#Jw'#JwO!8XQ07hO'#KWO9kQ07hO,5=]O`Q^O,5>mOOQU'#J`'#J`OOQU,5>n,5>nOOQU-E<U-E<UO!:ZQ08SO,5:]O!<wQ08SO,5:iO%[Q^O,5:iO!?bQ08SO,5:kOOQO,5@q,5@qO!@RQ7[O,5=XO!@aQ07hO'#JaO9UQWO'#JaO!@rQ07hO,59YO!@}Q`O,59YO!AVQ7[O,59YO:RQ7[O,59YO!AbQWO,5;VO!AjQWO'#HZO!BOQWO'#KZO%[Q^O,5;zO!7{Q`O,5;|O!BWQWO,5=tO!B]QWO,5=tO!BbQWO,5=tO9kQ07hO,5=tO;sQWO,5=dOOQO'#Cu'#CuO!BpQ`O,5=aO!BxQ7[O,5=bO!CTQWO,5=dO!CYQpO,5=gO!CbQWO'#KVO>pQWO'#HQO9aQWO'#HSO!CgQWO'#HSO:RQ7[O'#HUO!ClQWO'#HUOOQU,5=j,5=jO!CqQWO'#HVO!DSQWO'#CnO!DXQWO,59OO!DcQWO,59OO!FhQ^O,59OOOQU,59O,59OO!FxQ07hO,59OO%[Q^O,59OO!ITQ^O'#H^OOQU'#H_'#H_OOQU'#H`'#H`O`Q^O,5=vO!IkQWO,5=vO`Q^O,5=|O`Q^O,5>OO!IpQWO,5>QO`Q^O,5>SO!IuQWO,5>VO!IzQ^O,5>]OOQU,5>c,5>cO%[Q^O,5>cO9kQ07hO,5>eOOQU,5>g,5>gO!NUQWO,5>gOOQU,5>i,5>iO!NUQWO,5>iOOQU,5>k,5>kO!NZQ`O'#D[O%[Q^O'#JmO!NxQ`O'#JmO# gQ`O'#DjO# xQ`O'#DjO#$ZQ^O'#DjO#$bQWO'#JlO#$jQWO,5:TO#$oQWO'#EpO#$}QWO'#JzO#%VQWO,5;ZO#%[Q`O'#DjO#%iQ`O'#EUOOQ07b,5:n,5:nO%[Q^O,5:nO#%pQWO,5:nO>pQWO,5;UO!@}Q`O,5;UO!AVQ7[O,5;UO:RQ7[O,5;UO#%xQWO,5@XO#%}Q$ISO,5:rOOQO-E<`-E<`O#'TQ07pO,5:}OCnQ`O,5:qO#'_Q`O,5:qOCnQ`O,5:}O!@rQ07hO,5:qOOQ07`'#Ef'#EfOOQO,5:},5:}O%[Q^O,5:}O#'lQ07hO,5:}O#'wQ07hO,5:}O!@}Q`O,5:qOOQO,5;T,5;TO#(VQ07hO,5:}POOO'#IV'#IVP#(kO!0LbO,58{POOO,58{,58{OOOO-E<V-E<VOOQ07b1G.o1G.oOOOO-E<W-E<WO#(vQpO,59zOOOO-E<Y-E<YOOQ07b1G/d1G/dO#({QrO,5>wO+}Q^O,5>wOOQO,5>},5>}O#)VQ^O'#I]OOQO-E<Z-E<ZO#)dQWO,5@VO#)lQrO,5@VO#)sQWO,5@dOOQ07b1G/j1G/jO%[Q^O,5@eO#){QWO'#IcOOQO-E<a-E<aO#)sQWO,5@dOOQ07`1G0t1G0tOOQ07f1G/u1G/uOOQ07f1G0X1G0XO%[Q^O,5@bO#*aQ07hO,5@bO#*rQ07hO,5@bO#*yQWO,5@aO9ZQWO,5@aO#+RQWO,5@aO#+aQWO'#IfO#*yQWO,5@aOOQ07`1G0s1G0sO!*OQ`O,5:tO!*ZQ`O,5:tOOQO,5:v,5:vO#,RQWO,5:vO#,ZQ7[O1G2sO9aQWO1G2sOOQ07b1G0q1G0qO#,iQ08SO1G0qO#-nQ08QO,5;ROOQ07b'#GR'#GRO#.[Q08SO'#JdO!$aQ^O1G0qO#0dQ7[O'#JnO#0nQWO,5:_O#0sQrO'#JoO%[Q^O'#JoO#0}QWO,5:dOOQ07b'#D['#D[OOQ07b1G0z1G0zO%[Q^O1G0zOOQ07b1G1d1G1dO#1SQWO1G0zO#3kQ08SO1G0{O#3rQ08SO1G0{O#6]Q08SO1G0{O#6dQ08SO1G0{O#8nQ08SO1G0{O#9UQ08SO1G0{O#<OQ08SO1G0{O#<VQ08SO1G0{O#>jQ08SO1G0{O#>wQ08SO1G0{O#@uQ08SO1G0{O#CuQ(CYO'#ChO#EsQ(CYO1G1^O#EzQ(CYO'#JjO!,lQWO1G1dO#F[Q08SO,5?TOOQ07`-E<g-E<gO#GOQ08SO1G0{OOQ07b1G0{1G0{O#IZQ08SO1G1aO#I}Q&jO,5<TO#JVQ&jO,5<UO#J_Q&jO'#FlO#JvQWO'#FkOOQO'#KO'#KOOOQO'#Ig'#IgO#J{Q&jO1G1kOOQ07b1G1k1G1kOOOS1G1v1G1vO#K^Q(CYO'#JiO#KhQWO,5<_O!*fQ^O,5<_OOOS-E<f-E<fOOQ07b1G1i1G1iO#KmQ`O'#J}OOQ07b,5<a,5<aO#KuQ`O,5<aOOQ07b,59e,59eO!&dQ7[O'#DPOOOO'#IZ'#IZO#KzO?MpO,59iOOQ07b,59i,59iO%[Q^O1G1|O!6[QWO'#IkO#LVQ7[O,5<uOOQ07b,5<r,5<rO!(SQ7[O'#InO#LuQ7[O,5=RO!(SQ7[O'#IpO#MhQ7[O,5=TO!&dQ7[O,5=VOOQO1G2O1G2OO#MrQpO'#CqO#NVQpO,5<nO#N^QWO'#KRO9aQWO'#KRO#NlQWO,5<pO!(SQ7[O,5<oO#NqQWO'#GUO#N|QWO,5<oO$ RQpO'#GRO$ `QpO'#KSO$ jQWO'#KSO!&dQ7[O'#KSO$ oQWO,5<sO$ tQ`O'#G^O!4eQ`O'#G^O$!VQWO'#G`O$![QWO'#GbO!3fQWO'#GeO$!aQ07hO'#ImO$!lQ`O,5<wOOQ07f,5<w,5<wO$!sQ`O'#G^O$#RQ`O'#G_O$#ZQ`O'#G_O$#`Q7[O,5=RO$#pQ7[O,5=TOOQ07b,5=W,5=WO!(SQ7[O,5?}O!(SQ7[O,5?}O$$QQWO'#IrO$$]QWO,5?|O$$eQWO,59`O$%UQ7[O,59qOOQ07b,59q,59qO$%wQ7[O,5<fO$&jQ7[O,5<hO@bQWO,5<jOOQ07b,5<k,5<kO$&tQWO,5<qO$&yQ7[O,5<vO$'ZQWO'#JuO!$aQ^O1G1}O$'`QWO1G1}O9ZQWO'#JxO9ZQWO'#EpO%[Q^O'#EpO9ZQWO'#ItO$'eQ07hO,5@rOOQU1G2w1G2wOOQU1G4X1G4XOOQ07b1G/w1G/wO!,iQWO1G/wO$)jQ08SO1G0TOOQU1G2s1G2sO!&dQ7[O1G2sO%[Q^O1G2sO#,^QWO1G2sO$+nQ7[O'#EgOOQ07`,5?{,5?{O$+xQ07hO,5?{OOQU1G.t1G.tO!@rQ07hO1G.tO!@}Q`O1G.tO!AVQ7[O1G.tO$,ZQWO1G0qO$,`QWO'#ChO$,kQWO'#K[O$,sQWO,5=uO$,xQWO'#K[O$,}QWO'#K[O$-]QWO'#IzO$-kQWO,5@uO$-sQrO1G1fOOQ07b1G1h1G1hO9aQWO1G3`O@bQWO1G3`O$-zQWO1G3`O$.PQWO1G3`OOQU1G3`1G3`O!CTQWO1G3OO!&dQ7[O1G2{O$.UQWO1G2{OOQU1G2|1G2|O!&dQ7[O1G2|O$.ZQWO1G2|O$.cQ`O'#GzOOQU1G3O1G3OO!4eQ`O'#IvO!CYQpO1G3ROOQU1G3R1G3ROOQU,5=l,5=lO$.kQ7[O,5=nO9aQWO,5=nO$![QWO,5=pO9UQWO,5=pO!@}Q`O,5=pO!AVQ7[O,5=pO:RQ7[O,5=pO$.yQWO'#KYO$/UQWO,5=qOOQU1G.j1G.jO$/ZQ07hO1G.jO@bQWO1G.jO$/fQWO1G.jO9kQ07hO1G.jO$1kQrO,5@wO$1{QWO,5@wO9ZQWO,5@wO$2WQ^O,5=xO$2_QWO,5=xOOQU1G3b1G3bO`Q^O1G3bOOQU1G3h1G3hOOQU1G3j1G3jO>kQWO1G3lO$2dQ^O1G3nO$6hQ^O'#HmOOQU1G3q1G3qO$6uQWO'#HsO>pQWO'#HuOOQU1G3w1G3wO$6}Q^O1G3wO9kQ07hO1G3}OOQU1G4P1G4POOQ07`'#GY'#GYO9kQ07hO1G4RO9kQ07hO1G4TO$;UQWO,5@XO!*fQ^O,5;[O9ZQWO,5;[O>pQWO,5:UO!*fQ^O,5:UO!@}Q`O,5:UO$;ZQ(CYO,5:UOOQO,5;[,5;[O$;eQ`O'#I^O$;{QWO,5@WOOQ07b1G/o1G/oO$<TQ`O'#IdO$<_QWO,5@fOOQ07`1G0u1G0uO# xQ`O,5:UOOQO'#Ia'#IaO$<gQ`O,5:pOOQ07f,5:p,5:pO#%sQWO1G0YOOQ07b1G0Y1G0YO%[Q^O1G0YOOQ07b1G0p1G0pO>pQWO1G0pO!@}Q`O1G0pO!AVQ7[O1G0pOOQ07`1G5s1G5sO!@rQ07hO1G0]OOQO1G0i1G0iO%[Q^O1G0iO$<nQ07hO1G0iO$<yQ07hO1G0iO!@}Q`O1G0]OCnQ`O1G0]O$=XQ07hO1G0iOOQO1G0]1G0]O$=mQ08SO1G0iPOOO-E<T-E<TPOOO1G.g1G.gOOOO1G/f1G/fO$=wQpO,5<eO$>PQrO1G4cOOQO1G4i1G4iO%[Q^O,5>wO$>ZQWO1G5qO$>cQWO1G6OO$>kQrO1G6PO9ZQWO,5>}O$>uQ08SO1G5|O%[Q^O1G5|O$?VQ07hO1G5|O$?hQWO1G5{O$?hQWO1G5{O9ZQWO1G5{O$?pQWO,5?QO9ZQWO,5?QOOQO,5?Q,5?QO$@UQWO,5?QO$'ZQWO,5?QOOQO-E<d-E<dOOQO1G0`1G0`OOQO1G0b1G0bO!,lQWO1G0bOOQU7+(_7+(_O!&dQ7[O7+(_O%[Q^O7+(_O$@dQWO7+(_O$@oQ7[O7+(_O$@}Q08SO,5=RO$CYQ08SO,5=TO$EeQ08SO,5=RO$GvQ08SO,5=TO$JXQ08SO,59qO$LaQ08SO,5<fO$NlQ08SO,5<hO%!wQ08SO,5<vOOQ07b7+&]7+&]O%%YQ08SO7+&]O%%|Q7[O'#I_O%&WQWO,5@YOOQ07b1G/y1G/yO%&`Q^O'#I`O%&mQWO,5@ZO%&uQrO,5@ZOOQ07b1G0O1G0OO%'PQWO7+&fOOQ07b7+&f7+&fO%'UQ(CYO,5:eO%[Q^O7+&xO%'`Q(CYO,5:]O%'mQ(CYO,5:iO%'wQ(CYO,5:kOOQ07b7+'O7+'OOOQO1G1o1G1oOOQO1G1p1G1pO%(RQtO,5<WO!*fQ^O,5<VOOQO-E<e-E<eOOQ07b7+'V7+'VOOOS7+'b7+'bOOOS1G1y1G1yO%(^QWO1G1yOOQ07b1G1{1G1{O%(cQpO,59kOOOO-E<X-E<XOOQ07b1G/T1G/TO%(jQ08SO7+'hOOQ07b,5?V,5?VO%)^QpO,5?VOOQ07b1G2a1G2aP!&dQ7[O'#IkPOQ07b-E<i-E<iO%)|Q7[O,5?YOOQ07b-E<l-E<lO%*oQ7[O,5?[OOQ07b-E<n-E<nO%*yQpO1G2qOOQ07b1G2Y1G2YO%+QQWO'#IjO%+`QWO,5@mO%+`QWO,5@mO%+hQWO,5@mO%+sQWO,5@mOOQO1G2[1G2[O%,RQ7[O1G2ZO!(SQ7[O1G2ZO%,cQ!LQO'#IlO%,sQWO,5@nO!&dQ7[O,5@nO%,{QpO,5@nOOQ07b1G2_1G2_OOQ07`,5<x,5<xOOQ07`,5<y,5<yO$'ZQWO,5<yOC_QWO,5<yO!@}Q`O,5<xOOQO'#Ga'#GaO%-VQWO,5<zOOQ07`,5<|,5<|O$'ZQWO,5=POOQO,5?X,5?XOOQO-E<k-E<kOOQ07f1G2c1G2cO!4eQ`O,5<xO%-_QWO,5<yO$!VQWO,5<zO!4eQ`O,5<yO!(SQ7[O'#InO%.RQ7[O1G2mO!(SQ7[O'#IpO%.tQ7[O1G2oO%/OQ7[O1G5iO%/YQ7[O1G5iOOQO,5?^,5?^OOQO-E<p-E<pOOQO1G.z1G.zO!7{Q`O,59sO%[Q^O,59sO%/gQWO1G2UO!(SQ7[O1G2]O%/lQ08SO7+'iOOQ07b7+'i7+'iO!$aQ^O7+'iO%0`QWO,5;[OOQ07`,5?`,5?`OOQ07`-E<r-E<rOOQ07b7+%c7+%cO%0eQpO'#KTO#%sQWO7+(_O%0oQrO7+(_O$@gQWO7+(_O%0vQ08QO'#ChO%1ZQ08QO,5<}O%1{QWO,5<}OOQ07`1G5g1G5gOOQU7+$`7+$`O!@rQ07hO7+$`O!@}Q`O7+$`O!$aQ^O7+&]O%2QQWO'#IyO%2iQWO,5@vOOQO1G3a1G3aO9aQWO,5@vO%2iQWO,5@vO%2qQWO,5@vOOQO,5?f,5?fOOQO-E<x-E<xOOQ07b7+'Q7+'QO%2vQWO7+(zO9kQ07hO7+(zO9aQWO7+(zO@bQWO7+(zOOQU7+(j7+(jO%2{Q08QO7+(gO!&dQ7[O7+(gO%3VQpO7+(hOOQU7+(h7+(hO!&dQ7[O7+(hO%3^QWO'#KXO%3iQWO,5=fOOQO,5?b,5?bOOQO-E<t-E<tOOQU7+(m7+(mO%4xQ`O'#HTOOQU1G3Y1G3YO!&dQ7[O1G3YO%[Q^O1G3YO%5PQWO1G3YO%5[Q7[O1G3YO9kQ07hO1G3[O$![QWO1G3[O9UQWO1G3[O!@}Q`O1G3[O!AVQ7[O1G3[O%5jQWO'#IxO%6OQWO,5@tO%6WQ`O,5@tOOQ07`1G3]1G3]OOQU7+$U7+$UO@bQWO7+$UO9kQ07hO7+$UO%6cQWO7+$UO%[Q^O1G6cO%[Q^O1G6dO%6hQ07hO1G6cO%6rQ^O1G3dO%6yQWO1G3dO%7OQ^O1G3dOOQU7+(|7+(|O9kQ07hO7+)WO`Q^O7+)YOOQU'#K_'#K_OOQU'#I{'#I{O%7VQ^O,5>XOOQU,5>X,5>XO%[Q^O'#HnO%7dQWO'#HpOOQU,5>_,5>_O9ZQWO,5>_OOQU,5>a,5>aOOQU7+)c7+)cOOQU7+)i7+)iOOQU7+)m7+)mOOQU7+)o7+)oO%7iQ`O1G5sO%7}Q(CYO1G0vO%8XQWO1G0vOOQO1G/p1G/pO%8dQ(CYO1G/pO>pQWO1G/pO!*fQ^O'#DjOOQO,5>x,5>xOOQO-E<[-E<[OOQO,5?O,5?OOOQO-E<b-E<bO!@}Q`O1G/pOOQO-E<_-E<_OOQ07f1G0[1G0[OOQ07b7+%t7+%tO#%sQWO7+%tOOQ07b7+&[7+&[O>pQWO7+&[O!@}Q`O7+&[OOQO7+%w7+%wO$=mQ08SO7+&TOOQO7+&T7+&TO%[Q^O7+&TO%8nQ07hO7+&TO!@rQ07hO7+%wO!@}Q`O7+%wO%8yQ07hO7+&TO%9XQ08SO7++hO%[Q^O7++hO%9iQWO7++gO%9iQWO7++gOOQO1G4l1G4lO9ZQWO1G4lO%9qQWO1G4lOOQO7+%|7+%|O#%sQWO<<KyO%0oQrO<<KyO%:PQWO<<KyOOQU<<Ky<<KyO!&dQ7[O<<KyO%[Q^O<<KyO%:XQWO<<KyO%:dQ08SO,5?YO%<oQ08SO,5?[O%>zQ08SO1G2ZO%A]Q08SO1G2mO%ChQ08SO1G2oO%EsQ7[O,5>yOOQO-E<]-E<]O%E}QrO,5>zO%[Q^O,5>zOOQO-E<^-E<^O%FXQWO1G5uOOQ07b<<JQ<<JQO%FaQ(CYO1G0qO%HkQ(CYO1G0{O%HrQ(CYO1G0{O%JvQ(CYO1G0{O%J}Q(CYO1G0{O%LrQ(CYO1G0{O%MYQ(CYO1G0{O& mQ(CYO1G0{O& tQ(CYO1G0{O&#rQ(CYO1G0{O&$PQ(CYO1G0{O&%}Q(CYO1G0{O&&bQ08SO<<JdO&'gQ(CYO1G0{O&)]Q(CYO'#JdO&+`Q(CYO1G1aO&+mQ(CYO1G0TO!*fQ^O'#FnOOQO'#KP'#KPOOQO1G1r1G1rO&+wQWO1G1qO&+|Q(CYO,5?TOOOS7+'e7+'eOOOO1G/V1G/VOOQ07b1G4q1G4qO!(SQ7[O7+(]O&,WQWO,5?UO9aQWO,5?UOOQO-E<h-E<hO&,fQWO1G6XO&,fQWO1G6XO&,nQWO1G6XO&,yQ7[O7+'uO&-ZQpO,5?WO&-eQWO,5?WO!&dQ7[O,5?WOOQO-E<j-E<jO&-jQpO1G6YO&-tQWO1G6YOOQ07`1G2e1G2eO$'ZQWO1G2eOOQ07`1G2d1G2dO&-|QWO1G2fO!&dQ7[O1G2fOOQ07`1G2k1G2kO!@}Q`O1G2dOC_QWO1G2eO&.RQWO1G2fO&.ZQWO1G2eO&.}Q7[O,5?YOOQ07b-E<m-E<mO&/pQ7[O,5?[OOQ07b-E<o-E<oO!(SQ7[O7++TOOQ07b1G/_1G/_O&/zQWO1G/_OOQ07b7+'p7+'pO&0PQ7[O7+'wO&0aQ08SO<<KTOOQ07b<<KT<<KTO&1TQWO1G0vO!&dQ7[O'#IsO&1YQWO,5@oO!&dQ7[O1G2iOOQU<<Gz<<GzO!@rQ07hO<<GzO&1bQ08SO<<IwOOQ07b<<Iw<<IwOOQO,5?e,5?eO&2UQWO,5?eO&2ZQWO,5?eOOQO-E<w-E<wO&2iQWO1G6bO&2iQWO1G6bO9aQWO1G6bO@bQWO<<LfOOQU<<Lf<<LfO&2qQWO<<LfO9kQ07hO<<LfOOQU<<LR<<LRO%2{Q08QO<<LROOQU<<LS<<LSO%3VQpO<<LSO&2vQ`O'#IuO&3RQWO,5@sO!*fQ^O,5@sOOQU1G3Q1G3QO&3ZQ^O'#JmOOQO'#Iw'#IwO9kQ07hO'#IwO&3eQ`O,5=oOOQU,5=o,5=oO&3lQ`O'#EcO&4QQWO7+(tO&4VQWO7+(tOOQU7+(t7+(tO!&dQ7[O7+(tO%[Q^O7+(tO&4_QWO7+(tOOQU7+(v7+(vO9kQ07hO7+(vO$![QWO7+(vO9UQWO7+(vO!@}Q`O7+(vO&4jQWO,5?dOOQO-E<v-E<vOOQO'#HW'#HWO&4uQWO1G6`O9kQ07hO<<GpOOQU<<Gp<<GpO@bQWO<<GpO&4}QWO7++}O&5SQWO7+,OO%[Q^O7++}O%[Q^O7+,OOOQU7+)O7+)OO&5XQWO7+)OO&5^Q^O7+)OO&5eQWO7+)OOOQU<<Lr<<LrOOQU<<Lt<<LtOOQU-E<y-E<yOOQU1G3s1G3sO&5jQWO,5>YOOQU,5>[,5>[O&5oQWO1G3yO9ZQWO7+&bO!*fQ^O7+&bOOQO7+%[7+%[O&5tQ(CYO1G6PO>pQWO7+%[OOQ07b<<I`<<I`OOQ07b<<Iv<<IvO>pQWO<<IvOOQO<<Io<<IoO$=mQ08SO<<IoO%[Q^O<<IoOOQO<<Ic<<IcO!@rQ07hO<<IcO&6OQ07hO<<IoO&6ZQ08SO<= SO&6kQWO<= ROOQO7+*W7+*WO9ZQWO7+*WOOQUANAeANAeO&6sQWOANAeO!&dQ7[OANAeO#%sQWOANAeO%0oQrOANAeO%[Q^OANAeO&6{Q08SO7+'uO&9^Q08SO,5?YO&;iQ08SO,5?[O&=tQ08SO7+'wO&@VQrO1G4fO&@aQ(CYO7+&]O&BeQ(CYO,5=RO&DlQ(CYO,5=TO&D|Q(CYO,5=RO&E^Q(CYO,5=TO&EnQ(CYO,59qO&GqQ(CYO,5<fO&ItQ(CYO,5<hO&KwQ(CYO,5<vO&MmQ(CYO7+'hO&MzQ(CYO7+'iO&NXQWO,5<YOOQO7+']7+']O&N^Q7[O<<KwOOQO1G4p1G4pO&NeQWO1G4pO&NpQWO1G4pO' OQWO7++sO' OQWO7++sO!&dQ7[O1G4rO' WQpO1G4rO' bQWO7++tOOQ07`7+(P7+(PO$'ZQWO7+(QO' jQpO7+(QOOQ07`7+(O7+(OO$'ZQWO7+(PO' qQWO7+(QO!&dQ7[O7+(QOC_QWO7+(PO' vQ7[O<<NoOOQ07b7+$y7+$yO'!QQpO,5?_OOQO-E<q-E<qO'![Q08QO7+(TOOQUAN=fAN=fO9aQWO1G5POOQO1G5P1G5PO'!lQWO1G5PO'!qQWO7++|O'!qQWO7++|O9kQ07hOANBQO@bQWOANBQOOQUANBQANBQOOQUANAmANAmOOQUANAnANAnO'!yQWO,5?aOOQO-E<s-E<sO'#UQ(CYO1G6_O'%fQrO'#ChOOQO,5?c,5?cOOQO-E<u-E<uOOQU1G3Z1G3ZO&3ZQ^O,5<zOOQU<<L`<<L`O!&dQ7[O<<L`O&4QQWO<<L`O'%pQWO<<L`O%[Q^O<<L`OOQU<<Lb<<LbO9kQ07hO<<LbO$![QWO<<LbO9UQWO<<LbO'%xQ`O1G5OO'&TQWO7++zOOQUAN=[AN=[O9kQ07hOAN=[OOQU<= i<= iOOQU<= j<= jO'&]QWO<= iO'&bQWO<= jOOQU<<Lj<<LjO'&gQWO<<LjO'&lQ^O<<LjOOQU1G3t1G3tO>pQWO7+)eO'&sQWO<<I|O''OQ(CYO<<I|OOQO<<Hv<<HvOOQ07bAN?bAN?bOOQOAN?ZAN?ZO$=mQ08SOAN?ZOOQOAN>}AN>}O%[Q^OAN?ZOOQO<<Mr<<MrOOQUG27PG27PO!&dQ7[OG27PO#%sQWOG27PO''YQWOG27PO%0oQrOG27PO''bQ(CYO<<JdO''oQ(CYO1G2ZO')eQ(CYO,5?YO'+hQ(CYO,5?[O'-kQ(CYO1G2mO'/nQ(CYO1G2oO'1qQ(CYO<<KTO'2OQ(CYO<<IwOOQO1G1t1G1tO!(SQ7[OANAcOOQO7+*[7+*[O'2]QWO7+*[O'2hQWO<= _O'2pQpO7+*^OOQ07`<<Kl<<KlO$'ZQWO<<KlOOQ07`<<Kk<<KkO'2zQpO<<KlO$'ZQWO<<KkOOQO7+*k7+*kO9aQWO7+*kO'3RQWO<= hOOQUG27lG27lO9kQ07hOG27lO!*fQ^O1G4{O'3ZQWO7++yO&4QQWOANAzOOQUANAzANAzO!&dQ7[OANAzO'3cQWOANAzOOQUANA|ANA|O9kQ07hOANA|O$![QWOANA|OOQO'#HX'#HXOOQO7+*j7+*jOOQUG22vG22vOOQUANETANETOOQUANEUANEUOOQUANBUANBUO'3kQWOANBUOOQU<<MP<<MPO!*fQ^OAN?hOOQOG24uG24uO$=mQ08SOG24uO#%sQWOLD,kOOQULD,kLD,kO!&dQ7[OLD,kO'3pQWOLD,kO'3xQ(CYO7+'uO'5nQ(CYO,5?YO'7qQ(CYO,5?[O'9tQ(CYO7+'wO';jQ7[OG26}OOQO<<Mv<<MvOOQ07`ANAWANAWO$'ZQWOANAWOOQ07`ANAVANAVOOQO<<NV<<NVOOQULD-WLD-WO';zQ(CYO7+*gOOQUG27fG27fO&4QQWOG27fO!&dQ7[OG27fOOQUG27hG27hO9kQ07hOG27hOOQUG27pG27pO'<UQ(CYOG25SOOQOLD*aLD*aOOQU!$(!V!$(!VO#%sQWO!$(!VO!&dQ7[O!$(!VO'<`Q08SOG26}OOQ07`G26rG26rOOQULD-QLD-QO&4QQWOLD-QOOQULD-SLD-SOOQU!)9Eq!)9EqO#%sQWO!)9EqOOQU!$(!l!$(!lOOQU!.K;]!.K;]O'>qQ(CYOG26}O!*fQ^O'#DyO1PQWO'#EWO'@gQrO'#JiO!*fQ^O'#DqO'@nQ^O'#D}O'@uQrO'#ChO'C]QrO'#ChO!*fQ^O'#EPO'CmQ^O,5;VO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O'#IiO'EpQWO,5<eO'ExQ7[O,5;aO'GcQ7[O,5;aO!*fQ^O,5;uO!&dQ7[O'#GgO'ExQ7[O'#GgO!&dQ7[O'#GiO'ExQ7[O'#GiO1SQWO'#DVO1SQWO'#DVO!&dQ7[O'#FzO'ExQ7[O'#FzO!&dQ7[O'#F|O'ExQ7[O'#F|O!&dQ7[O'#G[O'ExQ7[O'#G[O!*fQ^O,5:iO!*fQ^O,5@eO'CmQ^O1G0qO'GjQ(CYO'#ChO!*fQ^O1G1|O!&dQ7[O'#InO'ExQ7[O'#InO!&dQ7[O'#IpO'ExQ7[O'#IpO!&dQ7[O,5<oO'ExQ7[O,5<oO'CmQ^O1G1}O!*fQ^O7+&xO!&dQ7[O1G2ZO'ExQ7[O1G2ZO!&dQ7[O'#InO'ExQ7[O'#InO!&dQ7[O'#IpO'ExQ7[O'#IpO!&dQ7[O1G2]O'ExQ7[O1G2]O'CmQ^O7+'iO'CmQ^O7+&]O!&dQ7[OANAcO'ExQ7[OANAcO'GtQWO'#EkO'GyQWO'#EkO'HRQWO'#FZO'HWQWO'#EuO'H]QWO'#JyO'HhQWO'#JwO'HsQWO,5;VO'HxQ7[O,5<bO'IPQWO'#GTO'IUQWO'#GTO'IZQWO,5<cO'IcQWO,5;VO'IkQ(CYO1G1^O'IrQWO,5<oO'IwQWO,5<oO'I|QWO,5<qO'JRQWO,5<qO'JWQWO1G1}O'J]QWO1G0qO'JbQ7[O<<KwO'JiQ7[O<<KwO7hQ7[O'#FxO9UQWO'#FwOA]QWO'#EjO!*fQ^O,5;rO!3fQWO'#GTO!3fQWO'#GTO!3fQWO'#GVO!3fQWO'#GVO!(SQ7[O7+(]O!(SQ7[O7+(]O%*yQpO1G2qO%*yQpO1G2qO!&dQ7[O,5=VO!&dQ7[O,5=V\",\n stateData: \"'Km~O'tOS'uOSSOS'vRQ~OPYOQYORfOX!VO`qOczOdyOlkOnYOokOpkOvkOxYOzYO!PWO!TkO!UkO![XO!fuO!kZO!nYO!oYO!pYO!rvO!twO!wxO!{]O#s!PO$T|O%b}O%d!QO%f!OO%g!OO%h!OO%k!RO%m!SO%p!TO%q!TO%s!UO&P!WO&V!XO&X!YO&Z!ZO&]![O&`!]O&f!^O&l!_O&n!`O&p!aO&r!bO&t!cO'{SO'}TO(QUO(XVO(g[O(tiO~OVtO~P`OPYOQYORfOc!jOd!iOlkOnYOokOpkOvkOxYOzYO!PWO!TkO!UkO![!eO!fuO!kZO!nYO!oYO!pYO!rvO!t!gO!w!hO$T!kO'{!dO'}TO(QUO(XVO(g[O(tiO~O`!vOo!nO!P!oO!_!xO!`!uO!a!uO!{:dO#P!pO#Q!pO#R!wO#S!pO#T!pO#W!yO#X!yO'|!lO'}TO(QUO([!mO(g!sO~O'v!zO~OP[XZ[X`[Xn[X|[X}[X!P[X!Y[X!h[X!i[X!k[X!o[X#[[X#geX#j[X#k[X#l[X#m[X#n[X#o[X#p[X#q[X#r[X#t[X#v[X#x[X#y[X$O[X'r[X(X[X(h[X(o[X(p[X~O!d$|X~P(qO^!|O'}#OO(O!|O(P#OO~O^#PO(P#OO(Q#OO(R#PO~Ot#RO!R#SO(Y#SO(Z#UO~OPYOQYORfOc!jOd!iOlkOnYOokOpkOvkOxYOzYO!PWO!TkO!UkO![!eO!fuO!kZO!nYO!oYO!pYO!rvO!t!gO!w!hO$T!kO'{:hO'}TO(QUO(XVO(g[O(tiO~O!X#YO!Y#VO!V(_P!V(lP~P+}O!Z#bO~P`OPYOQYORfOc!jOd!iOnYOokOpkOvkOxYOzYO!PWO!TkO!UkO![!eO!fuO!kZO!nYO!oYO!pYO!rvO!t!gO!w!hO$T!kO'}TO(QUO(XVO(g[O(tiO~Ol#lO!X#hO!{]O#e#kO#f#hO'{:iO!j(iP~P.iO!k#nO'{#mO~O!w#rO!{]O%b#sO~O#g#tO~O!d#uO#g#tO~OP$]OZ$dOn$QO|#yO}#zO!P#{O!Y$aO!h$SO!i#wO!k#xO!o$]O#j$OO#k$PO#l$PO#m$PO#n$RO#o$SO#p$SO#q$cO#r$SO#t$TO#v$VO#x$XO#y$YO(XVO(h$ZO(o#|O(p#}O~O`(]X'r(]X'p(]X!j(]X!V(]X![(]X%c(]X!d(]X~P1qO#[$eO$O$eOP(^XZ(^Xn(^X|(^X}(^X!P(^X!Y(^X!h(^X!k(^X!o(^X#j(^X#k(^X#l(^X#m(^X#n(^X#o(^X#p(^X#q(^X#r(^X#t(^X#v(^X#x(^X#y(^X(X(^X(h(^X(o(^X(p(^X![(^X%c(^X~O`(^X!i(^X'r(^X'p(^X!V(^X!j(^Xr(^X!d(^X~P4XO#[$eO~O$Y$gO$[$fO$c$lO~ORfO![$mO$f$nO$h$pO~Og%VOl%WOn$tOo$sOp$sOv%XOx%YOz%ZO!P${O![$|O!f%`O!k$xO#f%aO$T%^O$o%[O$q%]O$t%_O'{$rO'}TO(QUO(X$uO(o$}O(p%POf(UP~O!k%bO~O!P%eO![%fO'{%dO~O!d%jO~O`%kO'r%kO~O'|!lO~P%[O%h%rO~P%[Og%VO!k%bO'{%dO'|!lO~Od%yO!k%bO'{%dO~O#r$SO~O|&OO![%{O!k%}O%d&RO'{%dO'|!lO'}TO(QUO_(}P~O!w#rO~O%m&TO!P(yX![(yX'{(yX~O'{&UO~O!t&ZO#s!PO%d!QO%f!OO%g!OO%h!OO%k!RO%m!SO%p!TO%q!TO~Oc&`Od&_O!w&]O%b&^O%u&[O~P;xOc&cOdyO![&bO!t&ZO!wxO!{]O#s!PO%b}O%f!OO%g!OO%h!OO%k!RO%m!SO%p!TO%q!TO%s!UO~Oa&fO#[&iO%d&dO'|!lO~P<}O!k&jO!t&nO~O!k#nO~O![XO~O`%kO'q&vO'r%kO~O`%kO'q&yO'r%kO~O`%kO'q&{O'r%kO~O'p[X!V[Xr[X!j[X&T[X![[X%c[X!d[X~P(qO!_'YO!`'RO!a'RO'|!lO'}TO(QUO~Oo'PO!P'OO!X'SO([&}O!Z(`P!Z(nP~P@UOj']O!['ZO'{%dO~Od'bO!k%bO'{%dO~O|&OO!k%}O~Oo!nO!P!oO!{:dO#P!pO#Q!pO#S!pO#T!pO'|!lO'}TO(QUO([!mO(g!sO~O!_'hO!`'gO!a'gO#R!pO#W'iO#X'iO~PApO`%kOg%VO!d#uO!k%bO'r%kO(h'kO~O!o'oO#['mO~PCOOo!nO!P!oO'}TO(QUO([!mO(g!sO~O![XOo(eX!P(eX!_(eX!`(eX!a(eX!{(eX#P(eX#Q(eX#R(eX#S(eX#T(eX#W(eX#X(eX'|(eX'}(eX(Q(eX([(eX(g(eX~O!`'gO!a'gO'|!lO~PCnO'w'sO'x'sO'y'uO~O^!|O'}'wO(O!|O(P'wO~O^#PO(P'wO(Q'wO(R#PO~Ot#RO!R#SO(Y#SO(Z'{O~O!X'}O!V'PX!V'VX!Y'PX!Y'VX~P+}O!Y(PO!V(_X~OP$]OZ$dOn$QO|#yO}#zO!P#{O!Y(PO!h$SO!i#wO!k#xO!o$]O#j$OO#k$PO#l$PO#m$PO#n$RO#o$SO#p$SO#q$cO#r$SO#t$TO#v$VO#x$XO#y$YO(XVO(h$ZO(o#|O(p#}O~O!V(_X~PGbO!V(UO~O!V(kX!Y(kX!d(kX!j(kX(h(kX~O#[(kX#g#`X!Z(kX~PIhO#[(VO!V(mX!Y(mX~O!Y(WO!V(lX~O!V(ZO~O#[$eO~PIhO!Z([O~P`O|#yO}#zO!P#{O!i#wO!k#xO(XVOP!maZ!man!ma!Y!ma!h!ma!o!ma#j!ma#k!ma#l!ma#m!ma#n!ma#o!ma#p!ma#q!ma#r!ma#t!ma#v!ma#x!ma#y!ma(h!ma(o!ma(p!ma~O`!ma'r!ma'p!ma!V!ma!j!mar!ma![!ma%c!ma!d!ma~PKOO!j(]O~O!d#uO#[(^O(h'kO!Y(jX`(jX'r(jX~O!j(jX~PMnO!P%eO![%fO!{]O#e(cO#f(bO'{%dO~O!Y(dO!j(iX~O!j(fO~O!P%eO![%fO#f(bO'{%dO~OP(^XZ(^Xn(^X|(^X}(^X!P(^X!Y(^X!h(^X!i(^X!k(^X!o(^X#j(^X#k(^X#l(^X#m(^X#n(^X#o(^X#p(^X#q(^X#r(^X#t(^X#v(^X#x(^X#y(^X(X(^X(h(^X(o(^X(p(^X~O!d#uO!j(^X~P! [O|(gO}(hO!i#wO!k#xO!{!za!P!za~O!w!za%b!za![!za#e!za#f!za'{!za~P!#`O!w(lO~OPYOQYORfOc!jOd!iOlkOnYOokOpkOvkOxYOzYO!PWO!TkO!UkO![XO!fuO!kZO!nYO!oYO!pYO!rvO!t!gO!w!hO$T!kO'{!dO'}TO(QUO(XVO(g[O(tiO~Og%VOl%WOn$tOo$sOp$sOv%XOx%YOz;QO!P${O![$|O!f<`O!k$xO#f;WO$T%^O$o;SO$q;UO$t%_O'{(pO'}TO(QUO(X$uO(o$}O(p%PO~O#g(rO~Og%VOl%WOn$tOo$sOp$sOv%XOx%YOz%ZO!P${O![$|O!f%`O!k$xO#f%aO$T%^O$o%[O$q%]O$t%_O'{(pO'}TO(QUO(X$uO(o$}O(p%PO~Of(bP~P!(SO!X(vO!j(cP~P%[O([(xO(g[O~O!P(zO!k#xO([(xO(g[O~OP:cOQ:cORfOc<[Od!iOlkOn:cOokOpkOvkOx:cOz:cO!PWO!TkO!UkO![!eO!f:fO!kZO!n:cO!o:cO!p:cO!r:gO!t:jO!w!hO$T!kO'{)YO'}TO(QUO(XVO(g[O(t<YO~O})]O!k#xO~O!Y$aO`$ma'r$ma'p$ma!j$ma!V$ma![$ma%c$ma!d$ma~O#s)aO~P!&dO|)dO!d)cO![$ZX$W$ZX$Y$ZX$[$ZX$c$ZX~O!d)cO![(qX$W(qX$Y(qX$[(qX$c(qX~O|)dO~P!.OO|)dO![(qX$W(qX$Y(qX$[(qX$c(qX~O![)fO$W)jO$Y)eO$[)eO$c)kO~O!X)nO~P!*fO$Y$gO$[$fO$c)rO~Oj$uX|$uX!P$uX!i$uX(o$uX(p$uX~OfiXf$uXjiX!YiX#[iX~P!/tOo)tO~Ot)uO(Y)vO(Z)xO~Oj*RO|)zO!P){O(o$}O(p%PO~Of)yO~P!0}Of*SO~Og%VOl%WOn$tOo$sOp$sOv%XOx%YOz;QO!P${O![$|O!f<`O!k$xO#f;WO$T%^O$o;SO$q;UO$t%_O'}TO(QUO(X$uO(o$}O(p%PO~O!X*WO'{*TO!j(uP~P!1lO#g*YO~O!k*ZO~O!X*`O'{*]O!V(vP~P!1lOn*lO!P*dO!_*jO!`*cO!a*cO!k*ZO#W*kO%Y*fO'|!lO([!mO~O!Z*iO~P!3xO!i#wOj(WX|(WX!P(WX(o(WX(p(WX!Y(WX#[(WX~Of(WX#|(WX~P!4qOj*qO#[*pOf(VX!Y(VX~O!Y*rOf(UX~O'{&UOf(UP~O!k*yO~O'{(pO~Ol*}O!P%eO!X#hO![%fO!{]O#e#kO#f#hO'{%dO!j(iP~O!d#uO#g+OO~O!P%eO!X+QO!Y(WO![%fO'{%dO!V(lP~Oo'VO!P+SO!X+RO'}TO(QUO([(xO~O!Z(nP~P!7lO!Y+TO`(zX'r(zX~OP$]OZ$dOn$QO|#yO}#zO!P#{O!h$SO!i#wO!k#xO!o$]O#j$OO#k$PO#l$PO#m$PO#n$RO#o$SO#p$SO#q$cO#r$SO#t$TO#v$VO#x$XO#y$YO(XVO(h$ZO(o#|O(p#}O~O`!ea!Y!ea'r!ea'p!ea!V!ea!j!ear!ea![!ea%c!ea!d!ea~P!8dO|#yO}#zO!P#{O!i#wO!k#xO(XVOP!qaZ!qan!qa!Y!qa!h!qa!o!qa#j!qa#k!qa#l!qa#m!qa#n!qa#o!qa#p!qa#q!qa#r!qa#t!qa#v!qa#x!qa#y!qa(h!qa(o!qa(p!qa~O`!qa'r!qa'p!qa!V!qa!j!qar!qa![!qa%c!qa!d!qa~P!:}O|#yO}#zO!P#{O!i#wO!k#xO(XVOP!saZ!san!sa!Y!sa!h!sa!o!sa#j!sa#k!sa#l!sa#m!sa#n!sa#o!sa#p!sa#q!sa#r!sa#t!sa#v!sa#x!sa#y!sa(h!sa(o!sa(p!sa~O`!sa'r!sa'p!sa!V!sa!j!sar!sa![!sa%c!sa!d!sa~P!=hOg%VOj+^O!['ZO%c+]O~O!d+`O`(TX![(TX'r(TX!Y(TX~O`%kO![XO'r%kO~Og%VO!k%bO~Og%VO!k%bO'{%dO~O!d#uO#g(rO~Oa+kO%d+lO'{+hO'}TO(QUO!Z)OP~O!Y+mO_(}X~OZ+qO~O_+rO~O![%{O'{%dO'|!lO_(}P~Og%VO#[+wO~Og%VOj+zO![$|O~O![+|O~O|,OO![XO~O%h%rO~O!w,TO~Od,YO~Oa,ZO'{#mO'}TO(QUO!Z(|P~Od%yO~O%d!QO'{&UO~P<}OZ,`O_,_O~OPYOQYORfOczOdyOlkOnYOokOpkOvkOxYOzYO!PWO!TkO!UkO!fuO!kZO!nYO!oYO!pYO!rvO!wxO!{]O%b}O'}TO(QUO(XVO(g[O(tiO~O![!eO!t!gO$T!kO'{!dO~P!DkO_,_O`%kO'r%kO~OPYOQYORfOc!jOd!iOlkOnYOokOpkOvkOxYOzYO!PWO!TkO!UkO![!eO!fuO!kZO!nYO!oYO!pYO!rvO!w!hO$T!kO'{!dO'}TO(QUO(XVO(g[O(tiO~O`,eO!twO#s!OO%f!OO%g!OO%h!OO~P!GTO!k&jO~O&V,kO~O![,mO~O&h,oO&j,pOP&eaQ&eaR&eaX&ea`&eac&ead&eal&ean&eao&eap&eav&eax&eaz&ea!P&ea!T&ea!U&ea![&ea!f&ea!k&ea!n&ea!o&ea!p&ea!r&ea!t&ea!w&ea!{&ea#s&ea$T&ea%b&ea%d&ea%f&ea%g&ea%h&ea%k&ea%m&ea%p&ea%q&ea%s&ea&P&ea&V&ea&X&ea&Z&ea&]&ea&`&ea&f&ea&l&ea&n&ea&p&ea&r&ea&t&ea'p&ea'{&ea'}&ea(Q&ea(X&ea(g&ea(t&ea!Z&ea&^&eaa&ea&c&ea~O'{,uO~Og!bX!Y!OX!Y!bX!Z!OX!Z!bX!d!OX!d!bX!k!bX#[!OX~O!d,zO#[,yOg(aX!Y#dX!Y(aX!Z#dX!Z(aX!d(aX!k(aX~Og%VO!d,|O!k%bO!Y!^X!Z!^X~Oo!nO!P!oO'}TO(QUO([!mO~OP:cOQ:cORfOc<[Od!iOlkOn:cOokOpkOvkOx:cOz:cO!PWO!TkO!UkO![!eO!f:fO!kZO!n:cO!o:cO!p:cO!r:gO!t:jO!w!hO$T!kO'}TO(QUO(XVO(g[O(t<YO~O'{;]O~P#!ZO!Y-QO!Z(`X~O!Z-SO~O!d,zO#[,yO!Y#dX!Z#dX~O!Y-TO!Z(nX~O!Z-VO~O!`-WO!a-WO'|!lO~P# xO!Z-ZO~P'_Oj-^O!['ZO~O!V-cO~Oo!za!_!za!`!za!a!za#P!za#Q!za#R!za#S!za#T!za#W!za#X!za'|!za'}!za(Q!za([!za(g!za~P!#`O!o-hO#[-fO~PCOO!`-jO!a-jO'|!lO~PCnO`%kO#[-fO'r%kO~O`%kO!d#uO#[-fO'r%kO~O`%kO!d#uO!o-hO#[-fO'r%kO(h'kO~O'w'sO'x'sO'y-oO~Or-pO~O!V'Pa!Y'Pa~P!8dO!X-tO!V'PX!Y'PX~P%[O!Y(PO!V(_a~O!V(_a~PGbO!Y(WO!V(la~O!P%eO!X-xO![%fO'{%dO!V'VX!Y'VX~O#[-zO!Y(ja!j(ja`(ja'r(ja~O!d#uO~P#*aO!Y(dO!j(ia~O!P%eO![%fO#f.OO'{%dO~Ol.TO!P%eO!X.QO![%fO!{]O#e.SO#f.QO'{%dO!Y'YX!j'YX~O}.XO!k#xO~Og%VOj.[O!['ZO%c.ZO~O`#_i!Y#_i'r#_i'p#_i!V#_i!j#_ir#_i![#_i%c#_i!d#_i~P!8dOj<fO|)zO!P){O(o$}O(p%PO~O#g#Za`#Za#[#Za'r#Za!Y#Za!j#Za![#Za!V#Za~P#-]O#g(WXP(WXZ(WX`(WXn(WX}(WX!h(WX!k(WX!o(WX#j(WX#k(WX#l(WX#m(WX#n(WX#o(WX#p(WX#q(WX#r(WX#t(WX#v(WX#x(WX#y(WX'r(WX(X(WX(h(WX!j(WX!V(WX'p(WXr(WX![(WX%c(WX!d(WX~P!4qO!Y.iOf(bX~P!0}Of.kO~O!Y.lO!j(cX~P!8dO!j.oO~O!V.qO~OP$]O|#yO}#zO!P#{O!i#wO!k#xO!o$]O(XVOZ#ii`#iin#ii!Y#ii!h#ii#k#ii#l#ii#m#ii#n#ii#o#ii#p#ii#q#ii#r#ii#t#ii#v#ii#x#ii#y#ii'r#ii(h#ii(o#ii(p#ii'p#ii!V#ii!j#iir#ii![#ii%c#ii!d#ii~O#j#ii~P#1XO#j$OO~P#1XOP$]O|#yO}#zO!P#{O!i#wO!k#xO!o$]O#j$OO#k$PO#l$PO#m$PO(XVOZ#ii`#ii!Y#ii!h#ii#n#ii#o#ii#p#ii#q#ii#r#ii#t#ii#v#ii#x#ii#y#ii'r#ii(h#ii(o#ii(p#ii'p#ii!V#ii!j#iir#ii![#ii%c#ii!d#ii~On#ii~P#3yOn$QO~P#3yOP$]On$QO|#yO}#zO!P#{O!i#wO!k#xO!o$]O#j$OO#k$PO#l$PO#m$PO#n$RO(XVO`#ii!Y#ii#t#ii#v#ii#x#ii#y#ii'r#ii(h#ii(o#ii(p#ii'p#ii!V#ii!j#iir#ii![#ii%c#ii!d#ii~OZ#ii!h#ii#o#ii#p#ii#q#ii#r#ii~P#6kOZ$dO!h$SO#o$SO#p$SO#q$cO#r$SO~P#6kOP$]OZ$dOn$QO|#yO}#zO!P#{O!h$SO!i#wO!k#xO!o$]O#j$OO#k$PO#l$PO#m$PO#n$RO#o$SO#p$SO#q$cO#r$SO#t$TO(XVO(p#}O`#ii!Y#ii#x#ii#y#ii'r#ii(h#ii(o#ii'p#ii!V#ii!j#iir#ii![#ii%c#ii!d#ii~O#v$VO~P#9lO#v#ii~P#9lOP$]OZ$dOn$QO|#yO}#zO!P#{O!h$SO!i#wO!k#xO!o$]O#j$OO#k$PO#l$PO#m$PO#n$RO#o$SO#p$SO#q$cO#r$SO#t$TO(XVO`#ii!Y#ii#x#ii#y#ii'r#ii(h#ii'p#ii!V#ii!j#iir#ii![#ii%c#ii!d#ii~O#v#ii(o#ii(p#ii~P#<^O#v$VO(o#|O(p#}O~P#<^OP$]OZ$dOn$QO|#yO}#zO!P#{O!h$SO!i#wO!k#xO!o$]O#j$OO#k$PO#l$PO#m$PO#n$RO#o$SO#p$SO#q$cO#r$SO#t$TO#v$VO#x$XO(XVO(o#|O(p#}O~O`#ii!Y#ii#y#ii'r#ii(h#ii'p#ii!V#ii!j#iir#ii![#ii%c#ii!d#ii~P#?UOP[XZ[Xn[X|[X}[X!P[X!h[X!i[X!k[X!o[X#[[X#geX#j[X#k[X#l[X#m[X#n[X#o[X#p[X#q[X#r[X#t[X#v[X#x[X#y[X$O[X(X[X(h[X(o[X(p[X!Y[X!Z[X~O#|[X~P#AoOP$]OZ:zOn:nO|#yO}#zO!P#{O!h:pO!i#wO!k#xO!o$]O#j:lO#k:mO#l:mO#m:mO#n:oO#o:pO#p:pO#q:yO#r:pO#t:qO#v:sO#x:uO#y:vO(XVO(h$ZO(o#|O(p#}O~O#|.sO~P#C|O#[:{O$O:{O#|(^X!Z(^X~P! [O`']a!Y']a'r']a'p']a!j']a!V']ar']a![']a%c']a!d']a~P!8dOP#iiZ#ii`#iin#ii}#ii!Y#ii!h#ii!i#ii!k#ii!o#ii#j#ii#k#ii#l#ii#m#ii#n#ii#o#ii#p#ii#q#ii#r#ii#t#ii#v#ii#x#ii#y#ii'r#ii(X#ii(h#ii'p#ii!V#ii!j#iir#ii![#ii%c#ii!d#ii~P#-]O`#}i!Y#}i'r#}i'p#}i!V#}i!j#}ir#}i![#}i%c#}i!d#}i~P!8dO$Y.xO$[.xO~O$Y.yO$[.yO~O!d)cO#[.zO![$`X$W$`X$Y$`X$[$`X$c$`X~O!X.{O~O![)fO$W.}O$Y)eO$[)eO$c/OO~O!Y:wO!Z(]X~P#C|O!Z/PO~O!d)cO$c(qX~O$c/RO~Ot)uO(Y)vO(Z/UO~O!V/YO~P!&dO(o$}Oj%Za|%Za!P%Za(p%Za!Y%Za#[%Za~Of%Za#|%Za~P#L^O(p%POj%]a|%]a!P%]a(o%]a!Y%]a#[%]a~Of%]a#|%]a~P#MPO!YeX!deX!jeX!j$uX(heX~P!/tO!j/bO~P#-]O!Y/cO!d#uO(h'kO!j(uX~O!j/hO~O!X*WO'{%dO!j(uP~O#g/jO~O!V$uX!Y$uX!d$|X~P!/tO!Y/kO!V(vX~P#-]O!d/mO~O!V/oO~Og%VOn/sO!d#uO!k%bO(h'kO~O'{/uO~O!d+`O~O`%kO!Y/yO'r%kO~O!Z/{O~P!3xO!`/|O!a/|O'|!lO([!mO~O!P0OO([!mO~O#W0PO~Of%Za!Y%Za#[%Za#|%Za~P!0}Of%]a!Y%]a#[%]a#|%]a~P!0}O'{&UOf'fX!Y'fX~O!Y*rOf(Ua~Of0YO~O|0ZO}0ZO!P0[Ojya(oya(pya!Yya#[ya~Ofya#|ya~P$$jO|)zO!P){Oj$na(o$na(p$na!Y$na#[$na~Of$na#|$na~P$%`O|)zO!P){Oj$pa(o$pa(p$pa!Y$pa#[$pa~Of$pa#|$pa~P$&RO#g0^O~Of%Oa!Y%Oa#[%Oa#|%Oa~P!0}O!d#uO~O#g0aO~O!Y+TO`(za'r(za~O|#yO}#zO!P#{O!i#wO!k#xO(XVOP!qiZ!qin!qi!Y!qi!h!qi!o!qi#j!qi#k!qi#l!qi#m!qi#n!qi#o!qi#p!qi#q!qi#r!qi#t!qi#v!qi#x!qi#y!qi(h!qi(o!qi(p!qi~O`!qi'r!qi'p!qi!V!qi!j!qir!qi![!qi%c!qi!d!qi~P$'pOg%VOn$tOo$sOp$sOv%XOx%YOz;QO!P${O![$|O!f<`O!k$xO#f;WO$T%^O$o;SO$q;UO$t%_O'}TO(QUO(X$uO(o$}O(p%PO~Ol0kO'{0jO~P$*ZO!d+`O`(Ta![(Ta'r(Ta!Y(Ta~O#g0qO~OZ[X!YeX!ZeX~O!Y0rO!Z)OX~O!Z0tO~OZ0uO~Oa0wO'{+hO'}TO(QUO~O![%{O'{%dO_'nX!Y'nX~O!Y+mO_(}a~O!j0zO~P!8dOZ0}O~O_1OO~O#[1RO~Oj1UO![$|O~O([(xO!Z({P~Og%VOj1_O![1[O%c1^O~OZ1iO!Y1gO!Z(|X~O!Z1jO~O_1lO`%kO'r%kO~O'{#mO'}TO(QUO~O#[$eO$O$eOP(^XZ(^Xn(^X|(^X}(^X!P(^X!Y(^X!h(^X!k(^X!o(^X#j(^X#k(^X#l(^X#m(^X#n(^X#o(^X#p(^X#q(^X#t(^X#v(^X#x(^X#y(^X(X(^X(h(^X(o(^X(p(^X~O#r1oO&T1pO`(^X!i(^X~P$/qO#[$eO#r1oO&T1pO~O`1rO~P%[O`1tO~O&^1wOP&[iQ&[iR&[iX&[i`&[ic&[id&[il&[in&[io&[ip&[iv&[ix&[iz&[i!P&[i!T&[i!U&[i![&[i!f&[i!k&[i!n&[i!o&[i!p&[i!r&[i!t&[i!w&[i!{&[i#s&[i$T&[i%b&[i%d&[i%f&[i%g&[i%h&[i%k&[i%m&[i%p&[i%q&[i%s&[i&P&[i&V&[i&X&[i&Z&[i&]&[i&`&[i&f&[i&l&[i&n&[i&p&[i&r&[i&t&[i'p&[i'{&[i'}&[i(Q&[i(X&[i(g&[i(t&[i!Z&[ia&[i&c&[i~Oa1}O!Z1{O&c1|O~P`O![XO!k2PO~O&j,pOP&eiQ&eiR&eiX&ei`&eic&eid&eil&ein&eio&eip&eiv&eix&eiz&ei!P&ei!T&ei!U&ei![&ei!f&ei!k&ei!n&ei!o&ei!p&ei!r&ei!t&ei!w&ei!{&ei#s&ei$T&ei%b&ei%d&ei%f&ei%g&ei%h&ei%k&ei%m&ei%p&ei%q&ei%s&ei&P&ei&V&ei&X&ei&Z&ei&]&ei&`&ei&f&ei&l&ei&n&ei&p&ei&r&ei&t&ei'p&ei'{&ei'}&ei(Q&ei(X&ei(g&ei(t&ei!Z&ei&^&eia&ei&c&ei~O!V2VO~O!Y!^a!Z!^a~P#C|Oo!nO!P!oO!X2]O([!mO!Y'QX!Z'QX~P@UO!Y-QO!Z(`a~O!Y'WX!Z'WX~P!7lO!Y-TO!Z(na~O!Z2dO~P'_O`%kO#[2mO'r%kO~O`%kO!d#uO#[2mO'r%kO~O`%kO!d#uO!o2qO#[2mO'r%kO(h'kO~O`%kO'r%kO~P!8dO!Y$aOr$ma~O!V'Pi!Y'Pi~P!8dO!Y(PO!V(_i~O!Y(WO!V(li~O!V(mi!Y(mi~P!8dO!Y(ji!j(ji`(ji'r(ji~P!8dO#[2sO!Y(ji!j(ji`(ji'r(ji~O!Y(dO!j(ii~O!P%eO![%fO!{]O#e2xO#f2wO'{%dO~O!P%eO![%fO#f2wO'{%dO~Oj3PO!['ZO%c3OO~Og%VOj3PO!['ZO%c3OO~O#g%ZaP%ZaZ%Za`%Zan%Za}%Za!h%Za!i%Za!k%Za!o%Za#j%Za#k%Za#l%Za#m%Za#n%Za#o%Za#p%Za#q%Za#r%Za#t%Za#v%Za#x%Za#y%Za'r%Za(X%Za(h%Za!j%Za!V%Za'p%Zar%Za![%Za%c%Za!d%Za~P#L^O#g%]aP%]aZ%]a`%]an%]a}%]a!h%]a!i%]a!k%]a!o%]a#j%]a#k%]a#l%]a#m%]a#n%]a#o%]a#p%]a#q%]a#r%]a#t%]a#v%]a#x%]a#y%]a'r%]a(X%]a(h%]a!j%]a!V%]a'p%]ar%]a![%]a%c%]a!d%]a~P#MPO#g%ZaP%ZaZ%Za`%Zan%Za}%Za!Y%Za!h%Za!i%Za!k%Za!o%Za#j%Za#k%Za#l%Za#m%Za#n%Za#o%Za#p%Za#q%Za#r%Za#t%Za#v%Za#x%Za#y%Za'r%Za(X%Za(h%Za!j%Za!V%Za'p%Za#[%Zar%Za![%Za%c%Za!d%Za~P#-]O#g%]aP%]aZ%]a`%]an%]a}%]a!Y%]a!h%]a!i%]a!k%]a!o%]a#j%]a#k%]a#l%]a#m%]a#n%]a#o%]a#p%]a#q%]a#r%]a#t%]a#v%]a#x%]a#y%]a'r%]a(X%]a(h%]a!j%]a!V%]a'p%]a#[%]ar%]a![%]a%c%]a!d%]a~P#-]O#gyaPyaZya`yanya!hya!iya!kya!oya#jya#kya#lya#mya#nya#oya#pya#qya#rya#tya#vya#xya#yya'rya(Xya(hya!jya!Vya'pyarya![ya%cya!dya~P$$jO#g$naP$naZ$na`$nan$na}$na!h$na!i$na!k$na!o$na#j$na#k$na#l$na#m$na#n$na#o$na#p$na#q$na#r$na#t$na#v$na#x$na#y$na'r$na(X$na(h$na!j$na!V$na'p$nar$na![$na%c$na!d$na~P$%`O#g$paP$paZ$pa`$pan$pa}$pa!h$pa!i$pa!k$pa!o$pa#j$pa#k$pa#l$pa#m$pa#n$pa#o$pa#p$pa#q$pa#r$pa#t$pa#v$pa#x$pa#y$pa'r$pa(X$pa(h$pa!j$pa!V$pa'p$par$pa![$pa%c$pa!d$pa~P$&RO#g%OaP%OaZ%Oa`%Oan%Oa}%Oa!Y%Oa!h%Oa!i%Oa!k%Oa!o%Oa#j%Oa#k%Oa#l%Oa#m%Oa#n%Oa#o%Oa#p%Oa#q%Oa#r%Oa#t%Oa#v%Oa#x%Oa#y%Oa'r%Oa(X%Oa(h%Oa!j%Oa!V%Oa'p%Oa#[%Oar%Oa![%Oa%c%Oa!d%Oa~P#-]O`#_q!Y#_q'r#_q'p#_q!V#_q!j#_qr#_q![#_q%c#_q!d#_q~P!8dOf'RX!Y'RX~P!(SO!Y.iOf(ba~O!X3ZO!Y'SX!j'SX~P%[O!Y.lO!j(ca~O!Y.lO!j(ca~P!8dO!V3^O~O#|!ma!Z!ma~PKOO#|!ea!Y!ea!Z!ea~P#C|O#|!qa!Z!qa~P!:}O#|!sa!Z!sa~P!=hORfO![3pO$a3qO~O!Z3uO~Or3vO~P#-]O`$jq!Y$jq'r$jq'p$jq!V$jq!j$jqr$jq![$jq%c$jq!d$jq~P!8dO!V3wO~P#-]O|)zO!P){O(p%POj'ba(o'ba!Y'ba#['ba~Of'ba#|'ba~P%)eO|)zO!P){Oj'da(o'da(p'da!Y'da#['da~Of'da#|'da~P%*WO(h$ZO~P#-]O!X3zO'{%dO!Y'^X!j'^X~O!Y/cO!j(ua~O!Y/cO!d#uO!j(ua~O!Y/cO!d#uO(h'kO!j(ua~Of$wi!Y$wi#[$wi#|$wi~P!0}O!X4SO'{*]O!V'`X!Y'`X~P!1lO!Y/kO!V(va~O!Y/kO!V(va~P#-]O!d#uO#r4[O~On4_O!d#uO(h'kO~O(o$}Oj%Zi|%Zi!P%Zi(p%Zi!Y%Zi#[%Zi~Of%Zi#|%Zi~P%-jO(p%POj%]i|%]i!P%]i(o%]i!Y%]i#[%]i~Of%]i#|%]i~P%.]Of(Vi!Y(Vi~P!0}O#[4fOf(Vi!Y(Vi~P!0}O!j4iO~O`$kq!Y$kq'r$kq'p$kq!V$kq!j$kqr$kq![$kq%c$kq!d$kq~P!8dO!V4mO~O!Y4nO![(wX~P#-]O!i#wO~P4XO`$uX![$uX%W[X'r$uX!Y$uX~P!/tO%W4pO`kXjkX|kX!PkX![kX'rkX(okX(pkX!YkX~O%W4pO~Oa4vO%d4wO'{+hO'}TO(QUO!Y'mX!Z'mX~O!Y0rO!Z)Oa~OZ4{O~O_4|O~O`%kO'r%kO~P#-]O![$|O~P#-]O!Y5UO#[5WO!Z({X~O!Z5XO~Oo!nO!P5YO!_!xO!`!uO!a!uO!{:dO#P!pO#Q!pO#R!pO#S!pO#T!pO#W5_O#X!yO'|!lO'}TO(QUO([!mO(g!sO~O!Z5^O~P%3nOj5dO![1[O%c5cO~Og%VOj5dO![1[O%c5cO~Oa5kO'{#mO'}TO(QUO!Y'lX!Z'lX~O!Y1gO!Z(|a~O'}TO(QUO([5mO~O_5qO~O#r5tO&T5uO~PMnO!j5vO~P%[O`5xO~O`5xO~P%[Oa1}O!Z5}O&c1|O~P`O!d6PO~O!d6ROg(ai!Y(ai!Z(ai!d(ai!k(ai~O!Y#di!Z#di~P#C|O#[6SO!Y#di!Z#di~O!Y!^i!Z!^i~P#C|O`%kO#[6]O'r%kO~O`%kO!d#uO#[6]O'r%kO~O!Y(jq!j(jq`(jq'r(jq~P!8dO!Y(dO!j(iq~O!P%eO![%fO#f6dO'{%dO~O!['ZO%c6gO~Oj6jO!['ZO%c6gO~O#g'baP'baZ'ba`'ban'ba}'ba!h'ba!i'ba!k'ba!o'ba#j'ba#k'ba#l'ba#m'ba#n'ba#o'ba#p'ba#q'ba#r'ba#t'ba#v'ba#x'ba#y'ba'r'ba(X'ba(h'ba!j'ba!V'ba'p'bar'ba!['ba%c'ba!d'ba~P%)eO#g'daP'daZ'da`'dan'da}'da!h'da!i'da!k'da!o'da#j'da#k'da#l'da#m'da#n'da#o'da#p'da#q'da#r'da#t'da#v'da#x'da#y'da'r'da(X'da(h'da!j'da!V'da'p'dar'da!['da%c'da!d'da~P%*WO#g$wiP$wiZ$wi`$win$wi}$wi!Y$wi!h$wi!i$wi!k$wi!o$wi#j$wi#k$wi#l$wi#m$wi#n$wi#o$wi#p$wi#q$wi#r$wi#t$wi#v$wi#x$wi#y$wi'r$wi(X$wi(h$wi!j$wi!V$wi'p$wi#[$wir$wi![$wi%c$wi!d$wi~P#-]O#g%ZiP%ZiZ%Zi`%Zin%Zi}%Zi!h%Zi!i%Zi!k%Zi!o%Zi#j%Zi#k%Zi#l%Zi#m%Zi#n%Zi#o%Zi#p%Zi#q%Zi#r%Zi#t%Zi#v%Zi#x%Zi#y%Zi'r%Zi(X%Zi(h%Zi!j%Zi!V%Zi'p%Zir%Zi![%Zi%c%Zi!d%Zi~P%-jO#g%]iP%]iZ%]i`%]in%]i}%]i!h%]i!i%]i!k%]i!o%]i#j%]i#k%]i#l%]i#m%]i#n%]i#o%]i#p%]i#q%]i#r%]i#t%]i#v%]i#x%]i#y%]i'r%]i(X%]i(h%]i!j%]i!V%]i'p%]ir%]i![%]i%c%]i!d%]i~P%.]Of'Ra!Y'Ra~P!0}O!Y'Sa!j'Sa~P!8dO!Y.lO!j(ci~O#|#_i!Y#_i!Z#_i~P#C|OP$]O|#yO}#zO!P#{O!i#wO!k#xO!o$]O(XVOZ#iin#ii!h#ii#k#ii#l#ii#m#ii#n#ii#o#ii#p#ii#q#ii#r#ii#t#ii#v#ii#x#ii#y#ii#|#ii(h#ii(o#ii(p#ii!Y#ii!Z#ii~O#j#ii~P%FnO#j:lO~P%FnOP$]O|#yO}#zO!P#{O!i#wO!k#xO!o$]O#j:lO#k:mO#l:mO#m:mO(XVOZ#ii!h#ii#n#ii#o#ii#p#ii#q#ii#r#ii#t#ii#v#ii#x#ii#y#ii#|#ii(h#ii(o#ii(p#ii!Y#ii!Z#ii~On#ii~P%HyOn:nO~P%HyOP$]On:nO|#yO}#zO!P#{O!i#wO!k#xO!o$]O#j:lO#k:mO#l:mO#m:mO#n:oO(XVO#t#ii#v#ii#x#ii#y#ii#|#ii(h#ii(o#ii(p#ii!Y#ii!Z#ii~OZ#ii!h#ii#o#ii#p#ii#q#ii#r#ii~P%KUOZ:zO!h:pO#o:pO#p:pO#q:yO#r:pO~P%KUOP$]OZ:zOn:nO|#yO}#zO!P#{O!h:pO!i#wO!k#xO!o$]O#j:lO#k:mO#l:mO#m:mO#n:oO#o:pO#p:pO#q:yO#r:pO#t:qO(XVO(p#}O#x#ii#y#ii#|#ii(h#ii(o#ii!Y#ii!Z#ii~O#v:sO~P%MpO#v#ii~P%MpOP$]OZ:zOn:nO|#yO}#zO!P#{O!h:pO!i#wO!k#xO!o$]O#j:lO#k:mO#l:mO#m:mO#n:oO#o:pO#p:pO#q:yO#r:pO#t:qO(XVO#x#ii#y#ii#|#ii(h#ii!Y#ii!Z#ii~O#v#ii(o#ii(p#ii~P& {O#v:sO(o#|O(p#}O~P& {OP$]OZ:zOn:nO|#yO}#zO!P#{O!h:pO!i#wO!k#xO!o$]O#j:lO#k:mO#l:mO#m:mO#n:oO#o:pO#p:pO#q:yO#r:pO#t:qO#v:sO#x:uO(XVO(o#|O(p#}O~O#y#ii#|#ii(h#ii!Y#ii!Z#ii~P&$^O`#zy!Y#zy'r#zy'p#zy!V#zy!j#zyr#zy![#zy%c#zy!d#zy~P!8dOj<gO|)zO!P){O(o$}O(p%PO~OP#iiZ#iin#ii}#ii!h#ii!i#ii!k#ii!o#ii#j#ii#k#ii#l#ii#m#ii#n#ii#o#ii#p#ii#q#ii#r#ii#t#ii#v#ii#x#ii#y#ii#|#ii(X#ii(h#ii!Y#ii!Z#ii~P&'UO!i#wOP(WXZ(WXj(WXn(WX|(WX}(WX!P(WX!h(WX!k(WX!o(WX#j(WX#k(WX#l(WX#m(WX#n(WX#o(WX#p(WX#q(WX#r(WX#t(WX#v(WX#x(WX#y(WX#|(WX(X(WX(h(WX(o(WX(p(WX!Y(WX!Z(WX~O#|#}i!Y#}i!Z#}i~P#C|O#|!qi!Z!qi~P$'pO!Z6|O~O!Y']a!Z']a~P#C|O!d#uO(h'kO!Y'^a!j'^a~O!Y/cO!j(ui~O!Y/cO!d#uO!j(ui~Of$wq!Y$wq#[$wq#|$wq~P!0}O!V'`a!Y'`a~P#-]O!d7TO~O!Y/kO!V(vi~P#-]O!Y/kO!V(vi~O!V7XO~O!d#uO#r7^O~On7_O!d#uO(h'kO~O|)zO!P){O(p%POj'ca(o'ca!Y'ca#['ca~Of'ca#|'ca~P&.fO|)zO!P){Oj'ea(o'ea(p'ea!Y'ea#['ea~Of'ea#|'ea~P&/XO!V7aO~Of$yq!Y$yq#[$yq#|$yq~P!0}O`$ky!Y$ky'r$ky'p$ky!V$ky!j$kyr$ky![$ky%c$ky!d$ky~P!8dO!d6RO~O!Y4nO![(wa~O`#_y!Y#_y'r#_y'p#_y!V#_y!j#_yr#_y![#_y%c#_y!d#_y~P!8dOZ7fO~Oa7hO'{+hO'}TO(QUO~O!Y0rO!Z)Oi~O_7lO~O([(xO!Y'iX!Z'iX~O!Y5UO!Z({a~OlkO'{7sO~P.iO!Z7vO~P%3nOo!nO!P7wO'}TO(QUO([!mO(g!sO~O![1[O~O![1[O%c7yO~Oj7|O![1[O%c7yO~OZ8RO!Y'la!Z'la~O!Y1gO!Z(|i~O!j8VO~O!j8WO~O!j8ZO~O!j8ZO~P%[O`8]O~O!d8^O~O!j8_O~O!Y(mi!Z(mi~P#C|O`%kO#[8gO'r%kO~O!Y(jy!j(jy`(jy'r(jy~P!8dO!Y(dO!j(iy~O!['ZO%c8jO~O#g$wqP$wqZ$wq`$wqn$wq}$wq!Y$wq!h$wq!i$wq!k$wq!o$wq#j$wq#k$wq#l$wq#m$wq#n$wq#o$wq#p$wq#q$wq#r$wq#t$wq#v$wq#x$wq#y$wq'r$wq(X$wq(h$wq!j$wq!V$wq'p$wq#[$wqr$wq![$wq%c$wq!d$wq~P#-]O#g'caP'caZ'ca`'can'ca}'ca!h'ca!i'ca!k'ca!o'ca#j'ca#k'ca#l'ca#m'ca#n'ca#o'ca#p'ca#q'ca#r'ca#t'ca#v'ca#x'ca#y'ca'r'ca(X'ca(h'ca!j'ca!V'ca'p'car'ca!['ca%c'ca!d'ca~P&.fO#g'eaP'eaZ'ea`'ean'ea}'ea!h'ea!i'ea!k'ea!o'ea#j'ea#k'ea#l'ea#m'ea#n'ea#o'ea#p'ea#q'ea#r'ea#t'ea#v'ea#x'ea#y'ea'r'ea(X'ea(h'ea!j'ea!V'ea'p'ear'ea!['ea%c'ea!d'ea~P&/XO#g$yqP$yqZ$yq`$yqn$yq}$yq!Y$yq!h$yq!i$yq!k$yq!o$yq#j$yq#k$yq#l$yq#m$yq#n$yq#o$yq#p$yq#q$yq#r$yq#t$yq#v$yq#x$yq#y$yq'r$yq(X$yq(h$yq!j$yq!V$yq'p$yq#[$yqr$yq![$yq%c$yq!d$yq~P#-]O!Y'Si!j'Si~P!8dO#|#_q!Y#_q!Z#_q~P#C|O(o$}OP%ZaZ%Zan%Za}%Za!h%Za!i%Za!k%Za!o%Za#j%Za#k%Za#l%Za#m%Za#n%Za#o%Za#p%Za#q%Za#r%Za#t%Za#v%Za#x%Za#y%Za#|%Za(X%Za(h%Za!Y%Za!Z%Za~Oj%Za|%Za!P%Za(p%Za~P&@nO(p%POP%]aZ%]an%]a}%]a!h%]a!i%]a!k%]a!o%]a#j%]a#k%]a#l%]a#m%]a#n%]a#o%]a#p%]a#q%]a#r%]a#t%]a#v%]a#x%]a#y%]a#|%]a(X%]a(h%]a!Y%]a!Z%]a~Oj%]a|%]a!P%]a(o%]a~P&BuOj<gO|)zO!P){O(p%PO~P&@nOj<gO|)zO!P){O(o$}O~P&BuO|0ZO}0ZO!P0[OPyaZyajyanya!hya!iya!kya!oya#jya#kya#lya#mya#nya#oya#pya#qya#rya#tya#vya#xya#yya#|ya(Xya(hya(oya(pya!Yya!Zya~O|)zO!P){OP$naZ$naj$nan$na}$na!h$na!i$na!k$na!o$na#j$na#k$na#l$na#m$na#n$na#o$na#p$na#q$na#r$na#t$na#v$na#x$na#y$na#|$na(X$na(h$na(o$na(p$na!Y$na!Z$na~O|)zO!P){OP$paZ$paj$pan$pa}$pa!h$pa!i$pa!k$pa!o$pa#j$pa#k$pa#l$pa#m$pa#n$pa#o$pa#p$pa#q$pa#r$pa#t$pa#v$pa#x$pa#y$pa#|$pa(X$pa(h$pa(o$pa(p$pa!Y$pa!Z$pa~OP%OaZ%Oan%Oa}%Oa!h%Oa!i%Oa!k%Oa!o%Oa#j%Oa#k%Oa#l%Oa#m%Oa#n%Oa#o%Oa#p%Oa#q%Oa#r%Oa#t%Oa#v%Oa#x%Oa#y%Oa#|%Oa(X%Oa(h%Oa!Y%Oa!Z%Oa~P&'UO#|$jq!Y$jq!Z$jq~P#C|O#|$kq!Y$kq!Z$kq~P#C|O!Z8vO~O#|8wO~P!0}O!d#uO!Y'^i!j'^i~O!d#uO(h'kO!Y'^i!j'^i~O!Y/cO!j(uq~O!V'`i!Y'`i~P#-]O!Y/kO!V(vq~O!V8}O~P#-]O!V8}O~Of(Vy!Y(Vy~P!0}O!Y'ga!['ga~P#-]O`%Vq![%Vq'r%Vq!Y%Vq~P#-]OZ9SO~O!Y0rO!Z)Oq~O#[9WO!Y'ia!Z'ia~O!Y5UO!Z({i~P#C|OP[XZ[Xn[X|[X}[X!P[X!V[X!Y[X!h[X!i[X!k[X!o[X#[[X#geX#j[X#k[X#l[X#m[X#n[X#o[X#p[X#q[X#r[X#t[X#v[X#x[X#y[X$O[X(X[X(h[X(o[X(p[X~O!d%TX#r%TX~P'#`O![1[O%c9[O~O'}TO(QUO([9aO~O!Y1gO!Z(|q~O!j9dO~O!j9eO~O!j9fO~O!j9fO~P%[O#[9iO!Y#dy!Z#dy~O!Y#dy!Z#dy~P#C|O!['ZO%c9nO~O#|#zy!Y#zy!Z#zy~P#C|OP$wiZ$win$wi}$wi!h$wi!i$wi!k$wi!o$wi#j$wi#k$wi#l$wi#m$wi#n$wi#o$wi#p$wi#q$wi#r$wi#t$wi#v$wi#x$wi#y$wi#|$wi(X$wi(h$wi!Y$wi!Z$wi~P&'UO|)zO!P){O(p%POP'baZ'baj'ban'ba}'ba!h'ba!i'ba!k'ba!o'ba#j'ba#k'ba#l'ba#m'ba#n'ba#o'ba#p'ba#q'ba#r'ba#t'ba#v'ba#x'ba#y'ba#|'ba(X'ba(h'ba(o'ba!Y'ba!Z'ba~O|)zO!P){OP'daZ'daj'dan'da}'da!h'da!i'da!k'da!o'da#j'da#k'da#l'da#m'da#n'da#o'da#p'da#q'da#r'da#t'da#v'da#x'da#y'da#|'da(X'da(h'da(o'da(p'da!Y'da!Z'da~O(o$}OP%ZiZ%Zij%Zin%Zi|%Zi}%Zi!P%Zi!h%Zi!i%Zi!k%Zi!o%Zi#j%Zi#k%Zi#l%Zi#m%Zi#n%Zi#o%Zi#p%Zi#q%Zi#r%Zi#t%Zi#v%Zi#x%Zi#y%Zi#|%Zi(X%Zi(h%Zi(p%Zi!Y%Zi!Z%Zi~O(p%POP%]iZ%]ij%]in%]i|%]i}%]i!P%]i!h%]i!i%]i!k%]i!o%]i#j%]i#k%]i#l%]i#m%]i#n%]i#o%]i#p%]i#q%]i#r%]i#t%]i#v%]i#x%]i#y%]i#|%]i(X%]i(h%]i(o%]i!Y%]i!Z%]i~O#|$ky!Y$ky!Z$ky~P#C|O#|#_y!Y#_y!Z#_y~P#C|O!d#uO!Y'^q!j'^q~O!Y/cO!j(uy~O!V'`q!Y'`q~P#-]O!V9wO~P#-]O!Y0rO!Z)Oy~O!Y5UO!Z({q~O![1[O%c:OO~O!j:RO~O!['ZO%c:WO~OP$wqZ$wqn$wq}$wq!h$wq!i$wq!k$wq!o$wq#j$wq#k$wq#l$wq#m$wq#n$wq#o$wq#p$wq#q$wq#r$wq#t$wq#v$wq#x$wq#y$wq#|$wq(X$wq(h$wq!Y$wq!Z$wq~P&'UO|)zO!P){O(p%POP'caZ'caj'can'ca}'ca!h'ca!i'ca!k'ca!o'ca#j'ca#k'ca#l'ca#m'ca#n'ca#o'ca#p'ca#q'ca#r'ca#t'ca#v'ca#x'ca#y'ca#|'ca(X'ca(h'ca(o'ca!Y'ca!Z'ca~O|)zO!P){OP'eaZ'eaj'ean'ea}'ea!h'ea!i'ea!k'ea!o'ea#j'ea#k'ea#l'ea#m'ea#n'ea#o'ea#p'ea#q'ea#r'ea#t'ea#v'ea#x'ea#y'ea#|'ea(X'ea(h'ea(o'ea(p'ea!Y'ea!Z'ea~OP$yqZ$yqn$yq}$yq!h$yq!i$yq!k$yq!o$yq#j$yq#k$yq#l$yq#m$yq#n$yq#o$yq#p$yq#q$yq#r$yq#t$yq#v$yq#x$yq#y$yq#|$yq(X$yq(h$yq!Y$yq!Z$yq~P&'UOf%_!Z!Y%_!Z#[%_!Z#|%_!Z~P!0}O!Y'iq!Z'iq~P#C|O!Y#d!Z!Z#d!Z~P#C|O#g%_!ZP%_!ZZ%_!Z`%_!Zn%_!Z}%_!Z!Y%_!Z!h%_!Z!i%_!Z!k%_!Z!o%_!Z#j%_!Z#k%_!Z#l%_!Z#m%_!Z#n%_!Z#o%_!Z#p%_!Z#q%_!Z#r%_!Z#t%_!Z#v%_!Z#x%_!Z#y%_!Z'r%_!Z(X%_!Z(h%_!Z!j%_!Z!V%_!Z'p%_!Z#[%_!Zr%_!Z![%_!Z%c%_!Z!d%_!Z~P#-]OP%_!ZZ%_!Zn%_!Z}%_!Z!h%_!Z!i%_!Z!k%_!Z!o%_!Z#j%_!Z#k%_!Z#l%_!Z#m%_!Z#n%_!Z#o%_!Z#p%_!Z#q%_!Z#r%_!Z#t%_!Z#v%_!Z#x%_!Z#y%_!Z#|%_!Z(X%_!Z(h%_!Z!Y%_!Z!Z%_!Z~P&'UOr(]X~P1qO'|!lO~P!*fO!VeX!YeX#[eX~P'#`OP[XZ[Xn[X|[X}[X!P[X!Y[X!YeX!h[X!i[X!k[X!o[X#[[X#[eX#geX#j[X#k[X#l[X#m[X#n[X#o[X#p[X#q[X#r[X#t[X#v[X#x[X#y[X$O[X(X[X(h[X(o[X(p[X~O!deX!j[X!jeX(heX~P'ASOP:cOQ:cORfOc<[Od!iOlkOn:cOokOpkOvkOx:cOz:cO!PWO!TkO!UkO![XO!f:fO!kZO!n:cO!o:cO!p:cO!r:gO!t:jO!w!hO$T!kO'{)YO'}TO(QUO(XVO(g[O(t<YO~O!Y:wO!Z$ma~Og%VOl%WOn$tOo$sOp$sOv%XOx%YOz;RO!P${O![$|O!f<aO!k$xO#f;XO$T%^O$o;TO$q;VO$t%_O'{(pO'}TO(QUO(X$uO(o$}O(p%PO~O#s)aO~P'ExO!Z[X!ZeX~P'ASO#g:kO~O!d#uO#g:kO~O#[:{O~O#r:pO~O#[;ZO!Y(mX!Z(mX~O#[:{O!Y(kX!Z(kX~O#g;[O~Of;^O~P!0}O#g;cO~O#g;dO~O!d#uO#g;eO~O!d#uO#g;[O~O#|;fO~P#C|O#g;gO~O#g;hO~O#g;mO~O#g;nO~O#g;oO~O#g;pO~O#|;qO~P!0}O#|;rO~P!0}O!i#P#Q#S#T#W#e#f#q(t$o$q$t%W%b%c%d%k%m%p%q%s%u~'vS#k!U't'|#lo#j#mn|'u$Y'u'{$[([~\",\n goto: \"$2p)SPPPPP)TPP)WP)iP*x.|PPPP5pPP6WPP<S?gP?zP?zPPP?zPAxP?zP?zP?zPA|PPBRPBlPGdPPPGhPPPPGhJiPPPJoKjPGhPMxPPPP!!WGhPPPGhPGhP!$fGhP!'z!(|!)VP!)y!)}!)yPPPPP!-Y!(|PP!-v!.pP!1dGhGh!1i!4s!9Y!9Y!=OPPP!=VGhPPPPPPPPPPP!@dP!AqPPGh!CSPGhPGhGhGhGhPGh!DfP!GnP!JrP!Jv!KQ!KU!KUP!GkP!KY!KYP!N^P!NbGhGh!Nh##k?zP?zP?z?zP#$v?z?z#'O?z#)k?z#+m?z?z#,[#.f#.f#.j#.r#.f#.zP#.fP?z#/d?z#3R?z?z5pPPP#6vPPP#7a#7aP#7aP#7w#7aPP#7}P#7tP#7t#8b#7t#8|#9S5m)W#9V)WP#9^#9^#9^P)WP)WP)WP)WPP)WP#9d#9gP#9g)WP#9kP#9nP)WP)WP)WP)WP)WP)W)WPP#9t#9z#:V#:]#:c#:i#:o#:}#;T#;Z#;e#;k#;u#<U#<[#<|#=`#=f#=l#=z#>a#@O#@^#@d#Ax#BW#Cr#DQ#DW#D^#Dd#Dn#Dt#Dz#EU#Eh#EnPPPPPPPPPP#EtPPPPPPP#Fi#Ip#KP#KW#K`PPPP$!d$%Z$+r$+u$+x$,q$,t$,w$-O$-WPP$-^$-b$.Y$/X$/]$/qPP$/u$/{$0PP$0S$0W$0Z$1P$1h$2P$2T$2W$2Z$2a$2d$2h$2lR!{RoqOXst!Z#c%j&m&o&p&r,h,m1w1zY!uQ'Z-Y1[5]Q%pvQ%xyQ&P|Q&e!VS'R!e-QQ'a!iS'g!r!xS*c$|*hQ+f%yQ+s&RQ,X&_Q-W'YQ-b'bQ-j'hQ/|*jQ1f,YR;Y:g%OdOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%j%p%}&f&i&m&o&p&r&v'O']'m'}(P(V(^(r(v(z)y+O+S,e,h,m-^-f-t-z.l.s0[0a0q1_1o1p1r1t1w1z1|2m2s3Z5Y5d5t5u5x6]7w7|8]8gS#p]:d!r)[$[$m'S)n,y,|.{2]3p5W6S9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]Q*u%ZQ+k%{Q,Z&bQ,b&jQ.c;QQ0h+^Q0l+`Q0w+lQ1n,`Q2{.[Q4v0rQ5k1gQ6i3PQ6u;RQ7h4wR8m6j&|kOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%j%p%}&f&i&j&m&o&p&r&v'O'S']'m'}(P(V(^(r(v(z)n)y+O+S+^,e,h,m,y,|-^-f-t-z.[.l.s.{0[0a0q1_1o1p1r1t1w1z1|2]2m2s3P3Z3p5W5Y5d5t5u5x6S6]6j7w7|8]8g9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]t!nQ!r!u!x!y'R'Y'Z'g'h'i-Q-W-Y-j1[5]5_$v$si#u#w$c$d$x${%O%Q%[%]%a)u){)}*P*R*Y*`*p*q+]+`+w+z.Z.i/Z/j/k/m0Q0S0^1R1U1^3O3x4S4[4f4n4p5c6g7T7^7y8j8w9[9n:O:W:y:z:|:};O;P;S;T;U;V;W;X;_;`;a;b;c;d;g;h;i;j;k;l;m;n;q;r<Y<b<c<f<gQ&S|Q'P!eS'V%f-TQ+k%{Q,Z&bQ0]*yQ0w+lQ0|+rQ1m,_Q1n,`Q4v0rQ5P1OQ5k1gQ5n1iQ5o1lQ7h4wQ7k4|Q8U5qQ9V7lR9b8RrnOXst!V!Z#c%j&d&m&o&p&r,h,m1w1zR,]&f&v^OPXYstuvwz!Z!`!g!j!o#R#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%j%p%}&f&i&j&m&o&p&r&v'O']'m(P(V(^(r(v(z)n)y+O+S+^,e,h,m,y,|-^-f-t-z.[.l.s.{0[0a0q1_1o1p1r1t1w1z1|2]2m2s3P3Z3p5W5Y5d5t5u5x6S6]6j7w7|8]8g9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<[<][#[WZ#V#Y'S'}!S%gm#g#h#k%b%e(W(b(c(d+Q+R+T,d,z-x.O.P.Q.S2P2w2x6R6dQ%sxQ%wyS%||&RQ&Y!TQ'^!hQ'`!iQ(k#rS*V$x*ZS+e%x%yQ+i%{Q,S&]Q,W&_S-a'a'bQ.^(lQ/g*WQ0p+fQ0v+lQ0x+mQ0{+qQ1a,TS1e,X,YQ2i-bQ3y/cQ4u0rQ4y0uQ5O0}Q5j1fQ7Q3zQ7g4wQ7j4{Q9R7fR9y9S!O$zi#w%O%Q%[%]%a)}*P*Y*p*q.i/j0Q0S0^3x4f8w<Y<b<c!S%uy!i!t%w%x%y'Q'`'a'b'f'p*b+e+f,}-a-b-i/t0p2b2i2p4^Q+_%sQ+x&VQ+{&WQ,V&_Q.](kQ1`,SU1d,W,X,YQ3Q.^Q5e1aS5i1e1fQ8Q5j#W<^#u$c$d$x${)u){*R*`+]+`+w+z.Z/Z/k/m1R1U1^3O4S4[4n4p5c6g7T7^7y8j9[9n:O:W:|;O;S;U;W;_;a;c;g;i;k;m;q<f<go<_:y:z:};P;T;V;X;`;b;d;h;j;l;n;rW%Ti%V*r<YS&V!Q&dQ&W!RQ&X!SR+v&T$w%Si#u#w$c$d$x${%O%Q%[%]%a)u){)}*P*R*Y*`*p*q+]+`+w+z.Z.i/Z/j/k/m0Q0S0^1R1U1^3O3x4S4[4f4n4p5c6g7T7^7y8j8w9[9n:O:W:y:z:|:};O;P;S;T;U;V;W;X;_;`;a;b;c;d;g;h;i;j;k;l;m;n;q;r<Y<b<c<f<gT)v$u)wV*v%Z;Q;RU'V!e%f-TS(y#y#zQ+p&OS.V(g(hQ1V+|Q4g0ZR7p5U&|kOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%j%p%}&f&i&j&m&o&p&r&v'O'S']'m'}(P(V(^(r(v(z)n)y+O+S+^,e,h,m,y,|-^-f-t-z.[.l.s.{0[0a0q1_1o1p1r1t1w1z1|2]2m2s3P3Z3p5W5Y5d5t5u5x6S6]6j7w7|8]8g9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]$i$`c#X#d%n%o%q'|(S(n(u(})O)P)Q)R)S)T)U)V)W)X)Z)^)b)l+Z+o-O-m-r-w-y.h.n.r.t.u.v/V0_2W2Z2k2r3Y3_3`3a3b3c3d3e3f3g3h3i3j3k3n3o3t4k4s6U6[6a6o6p6y6z7r8a8e8n8t8u9k9{:S:e<PT#SV#T&}kOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%j%p%}&f&i&j&m&o&p&r&v'O'S']'m'}(P(V(^(r(v(z)n)y+O+S+^,e,h,m,y,|-^-f-t-z.[.l.s.{0[0a0q1_1o1p1r1t1w1z1|2]2m2s3P3Z3p5W5Y5d5t5u5x6S6]6j7w7|8]8g9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]Q'T!eR2^-Qv!nQ!e!r!u!x!y'R'Y'Z'g'h'i-Q-W-Y-j1[5]5_S*b$|*hS/t*c*jQ/}*kQ1X,OQ4^/|R4a0PnqOXst!Z#c%j&m&o&p&r,h,m1w1zQ&t!^Q'q!wS(m#t:kQ+c%vQ,Q&YQ,R&[Q-_'_Q-l'jS.g(r;[S0`+O;eQ0n+dQ1Z,PQ2O,oQ2Q,pQ2Y,{Q2g-`Q2j-dS4l0a;oQ4q0oS4t0q;pQ6T2[Q6X2hQ6^2oQ7e4rQ8b6VQ8c6YQ8f6_R9h8_$d$_c#X#d%o%q'|(S(n(u(})O)P)Q)R)S)T)U)V)W)X)Z)^)b)l+Z+o-O-m-r-w-y.h.n.r.u.v/V0_2W2Z2k2r3Y3_3`3a3b3c3d3e3f3g3h3i3j3k3n3o3t4k4s6U6[6a6o6p6y6z7r8a8e8n8t8u9k9{:S:e<PS(j#o'dU*o%R(q3mS+Y%n.tQ2|0hQ6f2{Q8l6iR9o8m$d$^c#X#d%o%q'|(S(n(u(})O)P)Q)R)S)T)U)V)W)X)Z)^)b)l+Z+o-O-m-r-w-y.h.n.r.u.v/V0_2W2Z2k2r3Y3_3`3a3b3c3d3e3f3g3h3i3j3k3n3o3t4k4s6U6[6a6o6p6y6z7r8a8e8n8t8u9k9{:S:e<PS(i#o'dS({#z$_S+X%n.tS.W(h(jQ.w)]Q0e+YR2y.X&|kOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%j%p%}&f&i&j&m&o&p&r&v'O'S']'m'}(P(V(^(r(v(z)n)y+O+S+^,e,h,m,y,|-^-f-t-z.[.l.s.{0[0a0q1_1o1p1r1t1w1z1|2]2m2s3P3Z3p5W5Y5d5t5u5x6S6]6j7w7|8]8g9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]S#p]:dQ&o!XQ&p!YQ&r![Q&s!]R1v,kQ'[!hQ+[%sQ-]'^S.Y(k+_Q2e-[W2}.].^0g0iQ6W2fU6e2z2|3QS8i6f6hS9m8k8lS:U9l9oQ:^:VR:a:_U!vQ'Z-YT5Z1[5]!Q_OXZ`st!V!Z#c#g%b%j&d&f&m&o&p&r(d,h,m.P1w1z]!pQ!r'Z-Y1[5]T#p]:d%Y{OPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%j%p%}&f&i&j&m&o&p&r&v'O']'m'}(P(V(^(r(v(z)y+O+S+^,e,h,m-^-f-t-z.[.l.s0[0a0q1_1o1p1r1t1w1z1|2m2s3P3Z5Y5d5t5u5x6]6j7w7|8]8gS(y#y#zS.V(g(h!s;v$[$m'S)n,y,|.{2]3p5W6S9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]Y!tQ'Z-Y1[5]Q'f!rS'p!u!xS'r!y5_S-i'g'hQ-k'iR2p-jQ'o!tS(`#f1qS-h'f'rQ/f*VQ/r*bQ2q-kQ4O/gS4X/s/}Q7P3yS7[4_4aQ8y7QR9Q7_Q#vbQ'n!tS(_#f1qS(a#l*}Q+P%cQ+a%tQ+g%zU-g'f'o'rQ-{(`Q/e*VQ/q*bQ/w*eQ0m+bQ1b,US2n-h-kQ2v.TS3}/f/gS4W/r/}Q4Z/vQ4]/xQ5g1cQ6`2qQ7O3yQ7S4OS7W4X4aQ7]4`Q8O5hS8x7P7QQ8|7XQ9O7[Q9_8PQ9u8yQ9v8}Q9x9QQ:Q9`Q:Y9wQ;y;tQ<U;}R<V<OV!vQ'Z-Y%YaOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%j%p%}&f&i&j&m&o&p&r&v'O']'m'}(P(V(^(r(v(z)y+O+S+^,e,h,m-^-f-t-z.[.l.s0[0a0q1_1o1p1r1t1w1z1|2m2s3P3Z5Y5d5t5u5x6]6j7w7|8]8gS#vz!j!r;s$[$m'S)n,y,|.{2]3p5W6S9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]R;y<[%YbOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%j%p%}&f&i&j&m&o&p&r&v'O']'m'}(P(V(^(r(v(z)y+O+S+^,e,h,m-^-f-t-z.[.l.s0[0a0q1_1o1p1r1t1w1z1|2m2s3P3Z5Y5d5t5u5x6]6j7w7|8]8gQ%cj!S%ty!i!t%w%x%y'Q'`'a'b'f'p*b+e+f,}-a-b-i/t0p2b2i2p4^S%zz!jQ+b%uQ,U&_W1c,V,W,X,YU5h1d1e1fS8P5i5jQ9`8Q!r;t$[$m'S)n,y,|.{2]3p5W6S9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]Q;}<ZR<O<[$|eOPXYstuvw!Z!`!g!o#R#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%j%p%}&f&i&m&o&p&r&v'O']'m(P(V(^(r(v(z)y+O+S+^,e,h,m-^-f-t-z.[.l.s0[0a0q1_1o1p1r1t1w1z1|2m2s3P3Z5Y5d5t5u5x6]6j7w7|8]8gY#aWZ#V#Y'}!S%gm#g#h#k%b%e(W(b(c(d+Q+R+T,d,z-x.O.P.Q.S2P2w2x6R6dQ,c&j!p;u$[$m)n,y,|.{2]3p5W6S9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]R;x'SS'W!e%fR2`-T%OdOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%j%p%}&f&i&m&o&p&r&v'O']'m'}(P(V(^(r(v(z)y+O+S,e,h,m-^-f-t-z.l.s0[0a0q1_1o1p1r1t1w1z1|2m2s3Z5Y5d5t5u5x6]7w7|8]8g!r)[$[$m'S)n,y,|.{2]3p5W6S9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]Q,b&jQ0h+^Q2{.[Q6i3PR8m6j!b$Uc#X%n'|(S(n(u)W)X)^)b+o-m-r-w-y.h.n/V0_2k2r3Y3k4k4s6[6a6o8e9k:e!P:r)Z)l-O.t2W2Z3_3i3j3n3t6U6p6y6z7r8a8n8t8u9{:S<P!f$Wc#X%n'|(S(n(u)T)U)W)X)^)b+o-m-r-w-y.h.n/V0_2k2r3Y3k4k4s6[6a6o8e9k:e!T:t)Z)l-O.t2W2Z3_3f3g3i3j3n3t6U6p6y6z7r8a8n8t8u9{:S<P!^$[c#X%n'|(S(n(u)^)b+o-m-r-w-y.h.n/V0_2k2r3Y3k4k4s6[6a6o8e9k:eQ3x/az<])Z)l-O.t2W2Z3_3n3t6U6p6y6z7r8a8n8t8u9{:S<PQ<b<dR<c<e&|kOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%j%p%}&f&i&j&m&o&p&r&v'O'S']'m'}(P(V(^(r(v(z)n)y+O+S+^,e,h,m,y,|-^-f-t-z.[.l.s.{0[0a0q1_1o1p1r1t1w1z1|2]2m2s3P3Z3p5W5Y5d5t5u5x6S6]6j7w7|8]8g9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]S$nh$oR3q.z'TgOPWXYZhstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m$o%j%p%}&f&i&j&m&o&p&r&v'O'S']'m'}(P(V(^(r(v(z)n)y+O+S+^,e,h,m,y,|-^-f-t-z.[.l.s.z.{0[0a0q1_1o1p1r1t1w1z1|2]2m2s3P3Z3p5W5Y5d5t5u5x6S6]6j7w7|8]8g9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]T$jf$pQ$hfS)e$k)iR)q$pT$if$pT)g$k)i'ThOPWXYZhstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m$o%j%p%}&f&i&j&m&o&p&r&v'O'S']'m'}(P(V(^(r(v(z)n)y+O+S+^,e,h,m,y,|-^-f-t-z.[.l.s.z.{0[0a0q1_1o1p1r1t1w1z1|2]2m2s3P3Z3p5W5Y5d5t5u5x6S6]6j7w7|8]8g9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]T$nh$oQ$qhR)p$o%YjOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%j%p%}&f&i&j&m&o&p&r&v'O']'m'}(P(V(^(r(v(z)y+O+S+^,e,h,m-^-f-t-z.[.l.s0[0a0q1_1o1p1r1t1w1z1|2m2s3P3Z5Y5d5t5u5x6]6j7w7|8]8g!s<Z$[$m'S)n,y,|.{2]3p5W6S9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]#clOPXZst!Z!`!o#R#c#n#{$m%j&f&i&j&m&o&p&r&v'O'](z)n+S+^,e,h,m-^.[.{0[1_1o1p1r1t1w1z1|3P3p5Y5d5t5u5x6j7w7|8]!O%Ri#w%O%Q%[%]%a)}*P*Y*p*q.i/j0Q0S0^3x4f8w<Y<b<c#W(q#u$c$d$x${)u){*R*`+]+`+w+z.Z/Z/k/m1R1U1^3O4S4[4n4p5c6g7T7^7y8j9[9n:O:W:|;O;S;U;W;_;a;c;g;i;k;m;q<f<gQ*z%_Q/W)zo3m:y:z:};P;T;V;X;`;b;d;h;j;l;n;r!O$yi#w%O%Q%[%]%a)}*P*Y*p*q.i/j0Q0S0^3x4f8w<Y<b<cQ*[$zS*e$|*hQ*{%`Q/x*f#W;{#u$c$d$x${)u){*R*`+]+`+w+z.Z/Z/k/m1R1U1^3O4S4[4n4p5c6g7T7^7y8j9[9n:O:W:|;O;S;U;W;_;a;c;g;i;k;m;q<f<gn;|:y:z:};P;T;V;X;`;b;d;h;j;l;n;rQ<Q<^Q<R<_Q<S<`R<T<a!O%Ri#w%O%Q%[%]%a)}*P*Y*p*q.i/j0Q0S0^3x4f8w<Y<b<c#W(q#u$c$d$x${)u){*R*`+]+`+w+z.Z/Z/k/m1R1U1^3O4S4[4n4p5c6g7T7^7y8j9[9n:O:W:|;O;S;U;W;_;a;c;g;i;k;m;q<f<go3m:y:z:};P;T;V;X;`;b;d;h;j;l;n;rnoOXst!Z#c%j&m&o&p&r,h,m1w1zQ*_${Q,v&yQ,w&{R4R/k$v%Si#u#w$c$d$x${%O%Q%[%]%a)u){)}*P*R*Y*`*p*q+]+`+w+z.Z.i/Z/j/k/m0Q0S0^1R1U1^3O3x4S4[4f4n4p5c6g7T7^7y8j8w9[9n:O:W:y:z:|:};O;P;S;T;U;V;W;X;_;`;a;b;c;d;g;h;i;j;k;l;m;n;q;r<Y<b<c<f<gQ+y&WQ1T+{Q5S1SR7o5TT*g$|*hS*g$|*hT5[1[5]S/v*d5YT4`0O7wQ+a%tQ/w*eQ0m+bQ1b,UQ5g1cQ8O5hQ9_8PR:Q9`!O%Oi#w%O%Q%[%]%a)}*P*Y*p*q.i/j0Q0S0^3x4f8w<Y<b<cr)}$v(s*O*n*|/i0U0V3W4P4j6}7`9t;z<W<XS0Q*m0R#W:|#u$c$d$x${)u){*R*`+]+`+w+z.Z/Z/k/m1R1U1^3O4S4[4n4p5c6g7T7^7y8j9[9n:O:W:|;O;S;U;W;_;a;c;g;i;k;m;q<f<gn:}:y:z:};P;T;V;X;`;b;d;h;j;l;n;r!^;_(o)`*U*^._.b.f/S/X/a/n0f1Q1S3T4Q4U5R5T6k6n7U7Y7b7d8{9P:X<d<e`;`3l6q6t6x8o9p9s:bS;i.a3UT;j6s8r!O%Qi#w%O%Q%[%]%a)}*P*Y*p*q.i/j0Q0S0^3x4f8w<Y<b<cv*P$v(s*Q*m*|/]/i0U0V3W4P4b4j6}7`9t;z<W<XS0S*n0T#W;O#u$c$d$x${)u){*R*`+]+`+w+z.Z/Z/k/m1R1U1^3O4S4[4n4p5c6g7T7^7y8j9[9n:O:W:|;O;S;U;W;_;a;c;g;i;k;m;q<f<gn;P:y:z:};P;T;V;X;`;b;d;h;j;l;n;r!b;a(o)`*U*^.`.a.f/S/X/a/n0f1Q1S3R3T4Q4U5R5T6k6l6n7U7Y7b7d8{9P:X<d<ed;b3l6r6s6x8o8p9p9q9s:bS;k.b3VT;l6t8srnOXst!V!Z#c%j&d&m&o&p&r,h,m1w1zQ&a!UR,e&jrnOXst!V!Z#c%j&d&m&o&p&r,h,m1w1zR&a!UQ+}&XR1P+vsnOXst!V!Z#c%j&d&m&o&p&r,h,m1w1zQ1],SS5b1`1aU7x5`5a5eS9Z7z7{S9|9Y9]Q:Z9}R:`:[Q&h!VR,^&dR5n1iS%||&RR0x+mQ&m!WR,h&nR,n&sT1x,m1zR,r&tQ,q&tR2R,rQ't!zR-n'tSsOtQ#cXT%ms#cQ!}TR'v!}Q#QUR'x#QQ)w$uR/T)wQ#TVR'z#TQ#WWU(Q#W(R-uQ(R#XR-u(SQ-R'TR2_-RQ.j(sR3X.jQ.m(uS3[.m3]R3].nQ-Y'ZR2c-YY!rQ'Z-Y1[5]R'e!rS#^W%eU(X#^(Y-vQ(Y#_R-v(TQ-U'WR2a-Ut`OXst!V!Z#c%j&d&f&m&o&p&r,h,m1w1zS#gZ%bU#q`#g.PR.P(dQ(e#iQ-|(aW.U(e-|2t6bQ2t-}R6b2uQ)i$kR.|)iQ$ohR)o$oQ$bcU)_$b-q:xQ-q:eR:x)lQ/d*VW3{/d3|7R8zU3|/e/f/gS7R3}4OR8z7S$X)|$v(o(s)`*U*^*m*n*w*x*|.a.b.d.e.f/S/X/]/_/a/i/n0U0V0f1Q1S3R3S3T3W3l4P4Q4U4b4d4j5R5T6k6l6m6n6s6t6v6w6x6}7U7Y7`7b7d8o8p8q8{9P9p9q9r9s9t:X:b;z<W<X<d<eQ/l*^U4T/l4V7VQ4V/nR7V4UQ*h$|R/z*hr*O$v(s*m*n*|/i0U0V3W4P4j6}7`9t;z<W<X!^._(o)`*U*^.a.b.f/S/X/a/n0f1Q1S3T4Q4U5R5T6k6n7U7Y7b7d8{9P:X<d<eU/^*O._6qa6q3l6s6t6x8o9p9s:bQ0R*mQ3U.aU4c0R3U8rR8r6sv*Q$v(s*m*n*|/]/i0U0V3W4P4b4j6}7`9t;z<W<X!b.`(o)`*U*^.a.b.f/S/X/a/n0f1Q1S3R3T4Q4U5R5T6k6l6n7U7Y7b7d8{9P:X<d<eU/`*Q.`6re6r3l6s6t6x8o8p9p9q9s:bQ0T*nQ3V.bU4e0T3V8sR8s6tQ*s%UR0X*sQ4o0fR7c4oQ+U%hR0d+UQ5V1VS7q5V9XR9X7rQ,P&YR1Y,PQ5]1[R7u5]Q1h,ZS5l1h8SR8S5nQ0s+iW4x0s4z7i9TQ4z0vQ7i4yR9T7jQ+n%|R0y+nQ1z,mR5|1zYrOXst#cQ&q!ZQ+W%jQ,g&mQ,i&oQ,j&pQ,l&rQ1u,hS1x,m1zR5{1wQ%lpQ&u!_Q&x!aQ&z!bQ&|!cQ'l!tQ+V%iQ+c%vQ+u&SQ,]&hQ,t&wW-e'f'n'o'rQ-l'jQ/y*gQ0n+dS1k,^,aQ2S,sQ2T,vQ2U,wQ2j-dW2l-g-h-k-mQ4q0oQ4}0|Q5Q1QQ5f1bQ5p1mQ5z1vU6Z2k2n2qQ6^2oQ7e4rQ7m5PQ7n5RQ7t5[Q7}5gQ8T5oS8d6[6`Q8f6_Q9U7kQ9^8OQ9c8UQ9j8eQ9z9VQ:P9_Q:T9kR:]:QQ%vyQ'_!iQ'j!tU+d%w%x%yQ,{'QU-`'`'a'bS-d'f'pQ/p*bS0o+e+fQ2[,}S2h-a-bQ2o-iQ4Y/tQ4r0pQ6V2bQ6Y2iQ6_2pR7Z4^S$wi<YR*t%VU%Ui%V<YR0W*rQ$viS(o#u+`Q(s#wS)`$c$dQ*U$xQ*^${Q*m%OQ*n%QQ*w%[Q*x%]Q*|%aQ.a:|Q.b;OQ.d;SQ.e;UQ.f;WQ/S)uS/X){/ZQ/])}Q/_*PQ/a*RQ/i*YQ/n*`Q0U*pQ0V*qh0f+].Z1^3O5c6g7y8j9[9n:O:WQ1Q+wQ1S+zQ3R;_Q3S;aQ3T;cQ3W.iS3l:y:zQ4P/jQ4Q/kQ4U/mQ4b0QQ4d0SQ4j0^Q5R1RQ5T1UQ6k;gQ6l;iQ6m;kQ6n;mQ6s:}Q6t;PQ6v;TQ6w;VQ6x;XQ6}3xQ7U4SQ7Y4[Q7`4fQ7b4nQ7d4pQ8o;dQ8p;`Q8q;bQ8{7TQ9P7^Q9p;hQ9q;jQ9r;lQ9s;nQ9t8wQ:X;qQ:b;rQ;z<YQ<W<bQ<X<cQ<d<fR<e<gnpOXst!Z#c%j&m&o&p&r,h,m1w1zQ!fPS#eZ#nQ&w!`U'c!o5Y7wQ'y#RQ(|#{Q)m$mS,a&f&iQ,f&jQ,s&vQ,x'OQ-[']Q.p(zQ/Q)nQ0b+SQ0i+^Q1s,eQ2f-^Q2|.[Q3s.{Q4h0[Q5a1_Q5r1oQ5s1pQ5w1rQ5y1tQ6O1|Q6f3PQ6{3pQ7{5dQ8X5tQ8Y5uQ8[5xQ8l6jQ9]7|R9g8]#WcOPXZst!Z!`!o#c#n#{%j&f&i&j&m&o&p&r&v'O'](z+S+^,e,h,m-^.[0[1_1o1p1r1t1w1z1|3P5Y5d5t5u5x6j7w7|8]Q#XWQ#dYQ%nuQ%ovS%qw!gS'|#V(PQ(S#YQ(n#tQ(u#xQ(}$OQ)O$PQ)P$QQ)Q$RQ)R$SQ)S$TQ)T$UQ)U$VQ)V$WQ)W$XQ)X$YQ)Z$[Q)^$aQ)b$eW)l$m)n.{3pQ+Z%pQ+o%}S-O'S2]Q-m'mS-r'}-tQ-w(VQ-y(^Q.h(rQ.n(vQ.r:cQ.t:fQ.u:gQ.v:jQ/V)yQ0_+OQ2W,yQ2Z,|Q2k-fQ2r-zQ3Y.lQ3_:kQ3`:lQ3a:mQ3b:nQ3c:oQ3d:pQ3e:qQ3f:rQ3g:sQ3h:tQ3i:uQ3j:vQ3k.sQ3n:{Q3o;YQ3t:wQ4k0aQ4s0qQ6U;ZQ6[2mQ6a2sQ6o3ZQ6p;[Q6y;^Q6z;eQ7r5WQ8a6SQ8e6]Q8n;fQ8t;oQ8u;pQ9k8gQ9{9WQ:S9iQ:e#RR<P<]R#ZWR'U!eY!tQ'Z-Y1[5]S'Q!e-QQ'f!rS'p!u!xS'r!y5_S,}'R'YS-i'g'hQ-k'iQ2b-WR2p-jR(t#wR(w#xQ!fQT-X'Z-Y]!qQ!r'Z-Y1[5]Q#o]R'd:dT#jZ%bS#iZ%bS%hm,dU(a#g#h#kS-}(b(cQ.R(dQ0c+TQ2u.OU2v.P.Q.SS6c2w2xR8h6d`#]W#V#Y%e'}(W+Q-xr#fZm#g#h#k%b(b(c(d+T.O.P.Q.S2w2x6dQ1q,dQ2X,zQ6Q2PQ8`6RT;w'S+RT#`W%eS#_W%eS(O#V(WS(T#Y+QS-P'S+RT-s'}-xT'X!e%fQ$kfR)s$pT)h$k)iR3r.zT*X$x*ZR*a${Q0g+]Q2z.ZQ5`1^Q6h3OQ7z5cQ8k6gQ9Y7yQ9l8jQ9}9[Q:V9nQ:[:OR:_:WnqOXst!Z#c%j&m&o&p&r,h,m1w1zQ&g!VR,]&dtmOXst!U!V!Z#c%j&d&m&o&p&r,h,m1w1zR,d&jT%im,dR1W+|R,[&bQ&Q|R+t&RR+j%{T&k!W&nT&l!W&nT1y,m1z\",\n nodeNames: \"\u26A0 ArithOp ArithOp JSXStartTag LineComment BlockComment Script Hashbang ExportDeclaration export Star as VariableName String Escape from ; default FunctionDeclaration async function VariableDefinition > < TypeParamList TypeDefinition extends ThisType this LiteralType ArithOp Number BooleanLiteral TemplateType InterpolationEnd Interpolation InterpolationStart NullType null VoidType void TypeofType typeof MemberExpression . ?. PropertyName [ TemplateString Escape Interpolation super RegExp ] ArrayExpression Spread , } { ObjectExpression Property async get set PropertyDefinition Block : NewExpression new TypeArgList CompareOp < ) ( ArgList UnaryExpression delete LogicOp BitOp YieldExpression yield AwaitExpression await ParenthesizedExpression ClassExpression class ClassBody MethodDeclaration Decorator @ MemberExpression PrivatePropertyName CallExpression declare Privacy static abstract override PrivatePropertyDefinition PropertyDeclaration readonly accessor Optional TypeAnnotation Equals StaticBlock FunctionExpression ArrowFunction ParamList ParamList ArrayPattern ObjectPattern PatternProperty Privacy readonly Arrow MemberExpression BinaryExpression ArithOp ArithOp ArithOp ArithOp BitOp CompareOp instanceof satisfies in const CompareOp BitOp BitOp BitOp LogicOp LogicOp ConditionalExpression LogicOp LogicOp AssignmentExpression UpdateOp PostfixExpression CallExpression TaggedTemplateExpression DynamicImport import ImportMeta JSXElement JSXSelfCloseEndTag JSXSelfClosingTag JSXIdentifier JSXBuiltin JSXIdentifier JSXNamespacedName JSXMemberExpression JSXSpreadAttribute JSXAttribute JSXAttributeValue JSXEscape JSXEndTag JSXOpenTag JSXFragmentTag JSXText JSXEscape JSXStartCloseTag JSXCloseTag PrefixCast ArrowFunction TypeParamList SequenceExpression KeyofType keyof UniqueType unique ImportType InferredType infer TypeName ParenthesizedType FunctionSignature ParamList NewSignature IndexedType TupleType Label ArrayType ReadonlyType ObjectType MethodType PropertyType IndexSignature PropertyDefinition CallSignature TypePredicate is NewSignature new UnionType LogicOp IntersectionType LogicOp ConditionalType ParameterizedType ClassDeclaration abstract implements type VariableDeclaration let var using TypeAliasDeclaration InterfaceDeclaration interface EnumDeclaration enum EnumBody NamespaceDeclaration namespace module AmbientDeclaration declare GlobalDeclaration global ClassDeclaration ClassBody AmbientFunctionDeclaration ExportGroup VariableName VariableName ImportDeclaration ImportGroup ForStatement for ForSpec ForInSpec ForOfSpec of WhileStatement while WithStatement with DoStatement do IfStatement if else SwitchStatement switch SwitchBody CaseLabel case DefaultLabel TryStatement try CatchClause catch FinallyClause finally ReturnStatement return ThrowStatement throw BreakStatement break ContinueStatement continue DebuggerStatement debugger LabeledStatement ExpressionStatement SingleExpression SingleClassItem\",\n maxTerm: 371,\n context: trackNewline,\n nodeProps: [\n [\"isolate\", -8,4,5,13,33,35,48,50,52,\"\"],\n [\"group\", -26,8,16,18,65,201,205,209,210,212,215,218,228,230,236,238,240,242,245,251,257,259,261,263,265,267,268,\"Statement\",-32,12,13,28,31,32,38,48,51,52,54,59,67,75,79,81,83,84,106,107,116,117,134,137,139,140,141,142,144,145,164,165,167,\"Expression\",-23,27,29,33,37,39,41,168,170,172,173,175,176,177,179,180,181,183,184,185,195,197,199,200,\"Type\",-3,87,99,105,\"ClassItem\"],\n [\"openedBy\", 22,\"<\",34,\"InterpolationStart\",53,\"[\",57,\"{\",72,\"(\",157,\"JSXStartCloseTag\"],\n [\"closedBy\", 23,\">\",36,\"InterpolationEnd\",47,\"]\",58,\"}\",73,\")\",162,\"JSXEndTag\"]\n ],\n propSources: [jsHighlight],\n skippedNodes: [0,4,5,271],\n repeatNodeCount: 37,\n tokenData: \"$Fj(CSR!bOX%ZXY+gYZ-yZ[+g[]%Z]^.c^p%Zpq+gqr/mrs3cst:_tuEruvJSvwLkwx! Yxy!'iyz!(sz{!)}{|!,q|}!.O}!O!,q!O!P!/Y!P!Q!9j!Q!R#8g!R![#:v![!]#Gv!]!^#IS!^!_#J^!_!`#Ns!`!a$#_!a!b$(l!b!c$,k!c!}Er!}#O$-u#O#P$/P#P#Q$4h#Q#R$5r#R#SEr#S#T$7P#T#o$8Z#o#p$<k#p#q$=a#q#r$>q#r#s$?}#s$f%Z$f$g+g$g#BYEr#BY#BZ$AX#BZ$ISEr$IS$I_$AX$I_$I|Er$I|$I}$Dd$I}$JO$Dd$JO$JTEr$JT$JU$AX$JU$KVEr$KV$KW$AX$KW&FUEr&FU&FV$AX&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$AX?HUOEr(n%d_$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&j&hT$f&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c&j&zP;=`<%l&c'|'U]$f&j(R!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!b(SU(R!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!b(iP;=`<%l'}'|(oP;=`<%l&}'[(y]$f&j(OpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(rp)wU(OpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)rp*^P;=`<%l)r'[*dP;=`<%l(r#S*nX(Op(R!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g#S+^P;=`<%l*g(n+dP;=`<%l%Z(CS+rq$f&j(Op(R!b't(;dOX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p$f%Z$f$g+g$g#BY%Z#BY#BZ+g#BZ$IS%Z$IS$I_+g$I_$JT%Z$JT$JU+g$JU$KV%Z$KV$KW+g$KW&FU%Z&FU&FV+g&FV;'S%Z;'S;=`+a<%l?HT%Z?HT?HU+g?HUO%Z(CS.ST(P#S$f&j'u(;dO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c(CS.n_$f&j(Op(R!b'u(;dOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#`/x`$f&j!o$Ip(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S1V`#t$Id$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`2X!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S2d_#t$Id$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/|3l_'}$(n$f&j(R!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k(^4r_$f&j(R!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k&z5vX$f&jOr5qrs6cs!^5q!^!_6y!_#o5q#o#p6y#p;'S5q;'S;=`7h<%lO5q&z6jT$a`$f&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c`6|TOr6yrs7]s;'S6y;'S;=`7b<%lO6y`7bO$a``7eP;=`<%l6y&z7kP;=`<%l5q(^7w]$a`$f&j(R!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!r8uZ(R!bOY8pYZ6yZr8prs9hsw8pwx6yx#O8p#O#P6y#P;'S8p;'S;=`:R<%lO8p!r9oU$a`(R!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!r:UP;=`<%l8p(^:[P;=`<%l4k#%|:hh$f&j(Op(R!bOY%ZYZ&cZq%Zqr<Srs&}st%ZtuCruw%Zwx(rx!^%Z!^!_*g!_!c%Z!c!}Cr!}#O%Z#O#P&c#P#R%Z#R#SCr#S#T%Z#T#oCr#o#p*g#p$g%Z$g;'SCr;'S;=`El<%lOCr(r<__VS$f&j(Op(R!bOY<SYZ&cZr<Srs=^sw<Swx@nx!^<S!^!_Bm!_#O<S#O#P>`#P#o<S#o#pBm#p;'S<S;'S;=`Cl<%lO<S(Q=g]VS$f&j(R!bOY=^YZ&cZw=^wx>`x!^=^!^!_?q!_#O=^#O#P>`#P#o=^#o#p?q#p;'S=^;'S;=`@h<%lO=^&n>gXVS$f&jOY>`YZ&cZ!^>`!^!_?S!_#o>`#o#p?S#p;'S>`;'S;=`?k<%lO>`S?XSVSOY?SZ;'S?S;'S;=`?e<%lO?SS?hP;=`<%l?S&n?nP;=`<%l>`!f?xWVS(R!bOY?qZw?qwx?Sx#O?q#O#P?S#P;'S?q;'S;=`@b<%lO?q!f@eP;=`<%l?q(Q@kP;=`<%l=^'`@w]VS$f&j(OpOY@nYZ&cZr@nrs>`s!^@n!^!_Ap!_#O@n#O#P>`#P#o@n#o#pAp#p;'S@n;'S;=`Bg<%lO@ntAwWVS(OpOYApZrAprs?Ss#OAp#O#P?S#P;'SAp;'S;=`Ba<%lOAptBdP;=`<%lAp'`BjP;=`<%l@n#WBvYVS(Op(R!bOYBmZrBmrs?qswBmwxApx#OBm#O#P?S#P;'SBm;'S;=`Cf<%lOBm#WCiP;=`<%lBm(rCoP;=`<%l<S#%|C}i$f&j(g!L^(Op(R!bOY%ZYZ&cZr%Zrs&}st%ZtuCruw%Zwx(rx!Q%Z!Q![Cr![!^%Z!^!_*g!_!c%Z!c!}Cr!}#O%Z#O#P&c#P#R%Z#R#SCr#S#T%Z#T#oCr#o#p*g#p$g%Z$g;'SCr;'S;=`El<%lOCr#%|EoP;=`<%lCr(CSFRk$f&j(Op(R!b$Y#t'{&;d([!LYOY%ZYZ&cZr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$g%Z$g;'SEr;'S;=`I|<%lOEr+dHRk$f&j(Op(R!b$Y#tOY%ZYZ&cZr%Zrs&}st%ZtuGvuw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Gv![!^%Z!^!_*g!_!c%Z!c!}Gv!}#O%Z#O#P&c#P#R%Z#R#SGv#S#T%Z#T#oGv#o#p*g#p$g%Z$g;'SGv;'S;=`Iv<%lOGv+dIyP;=`<%lGv(CSJPP;=`<%lEr%#SJ_`$f&j(Op(R!b#l$IdOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#SKl_$f&j$O$Id(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&COLva(p&;`$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sv%ZvwM{wx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#SNW`$f&j#x$Id(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/|! c_(Q$)`$f&j(OpOY!!bYZ!#hZr!!brs!#hsw!!bwx!$xx!^!!b!^!_!%z!_#O!!b#O#P!#h#P#o!!b#o#p!%z#p;'S!!b;'S;=`!'c<%lO!!b'l!!i_$f&j(OpOY!!bYZ!#hZr!!brs!#hsw!!bwx!$xx!^!!b!^!_!%z!_#O!!b#O#P!#h#P#o!!b#o#p!%z#p;'S!!b;'S;=`!'c<%lO!!b&z!#mX$f&jOw!#hwx6cx!^!#h!^!_!$Y!_#o!#h#o#p!$Y#p;'S!#h;'S;=`!$r<%lO!#h`!$]TOw!$Ywx7]x;'S!$Y;'S;=`!$l<%lO!$Y`!$oP;=`<%l!$Y&z!$uP;=`<%l!#h'l!%R]$a`$f&j(OpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(r!Q!&PZ(OpOY!%zYZ!$YZr!%zrs!$Ysw!%zwx!&rx#O!%z#O#P!$Y#P;'S!%z;'S;=`!']<%lO!%z!Q!&yU$a`(OpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)r!Q!'`P;=`<%l!%z'l!'fP;=`<%l!!b(*Q!'t_!k(!b$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z!'l!)O_!jM|$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'+h!*[b$f&j(Op(R!b'|#)d#m$IdOY%ZYZ&cZr%Zrs&}sw%Zwx(rxz%Zz{!+d{!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S!+o`$f&j(Op(R!b#j$IdOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&-O!,|`$f&j(Op(R!bn&%`OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&C[!.Z_!Y&;l$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(CS!/ec$f&j(Op(R!b|'<nOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!0p!P!Q%Z!Q![!3Y![!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z!'d!0ya$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!2O!P!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z!'d!2Z_!XMt$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l!3eg$f&j(Op(R!bo$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!3Y![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S!3Y#S#X%Z#X#Y!4|#Y#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l!5Vg$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx{%Z{|!6n|}%Z}!O!6n!O!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l!6wc$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l!8_c$f&j(Op(R!bo$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(CS!9uf$f&j(Op(R!b#k$IdOY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Kpxz!;Zz{#,f{!P!;Z!P!Q#-{!Q!^!;Z!^!_#'Z!_!`#5k!`!a#7Q!a!}!;Z!}#O#*}#O#P!Dj#P#o!;Z#o#p#'Z#p;'S!;Z;'S;=`#,`<%lO!;Z(r!;fb$f&j(Op(R!b!USOY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Kpx!P!;Z!P!Q#%Z!Q!^!;Z!^!_#'Z!_!}!;Z!}#O#*}#O#P!Dj#P#o!;Z#o#p#'Z#p;'S!;Z;'S;=`#,`<%lO!;Z(Q!<w`$f&j(R!b!USOY!<nYZ&cZw!<nwx!=yx!P!<n!P!Q!Eb!Q!^!<n!^!_!GY!_!}!<n!}#O!Ja#O#P!Dj#P#o!<n#o#p!GY#p;'S!<n;'S;=`!Kj<%lO!<n&n!>Q^$f&j!USOY!=yYZ&cZ!P!=y!P!Q!>|!Q!^!=y!^!_!@Y!_!}!=y!}#O!Bw#O#P!Dj#P#o!=y#o#p!@Y#p;'S!=y;'S;=`!E[<%lO!=y&n!?Ta$f&j!USO!^&c!_#Z&c#Z#[!>|#[#]&c#]#^!>|#^#a&c#a#b!>|#b#g&c#g#h!>|#h#i&c#i#j!>|#j#m&c#m#n!>|#n#o&c#p;'S&c;'S;=`&w<%lO&cS!@_X!USOY!@YZ!P!@Y!P!Q!@z!Q!}!@Y!}#O!Ac#O#P!Bb#P;'S!@Y;'S;=`!Bq<%lO!@YS!APU!US#Z#[!@z#]#^!@z#a#b!@z#g#h!@z#i#j!@z#m#n!@zS!AfVOY!AcZ#O!Ac#O#P!A{#P#Q!@Y#Q;'S!Ac;'S;=`!B[<%lO!AcS!BOSOY!AcZ;'S!Ac;'S;=`!B[<%lO!AcS!B_P;=`<%l!AcS!BeSOY!@YZ;'S!@Y;'S;=`!Bq<%lO!@YS!BtP;=`<%l!@Y&n!B|[$f&jOY!BwYZ&cZ!^!Bw!^!_!Ac!_#O!Bw#O#P!Cr#P#Q!=y#Q#o!Bw#o#p!Ac#p;'S!Bw;'S;=`!Dd<%lO!Bw&n!CwX$f&jOY!BwYZ&cZ!^!Bw!^!_!Ac!_#o!Bw#o#p!Ac#p;'S!Bw;'S;=`!Dd<%lO!Bw&n!DgP;=`<%l!Bw&n!DoX$f&jOY!=yYZ&cZ!^!=y!^!_!@Y!_#o!=y#o#p!@Y#p;'S!=y;'S;=`!E[<%lO!=y&n!E_P;=`<%l!=y(Q!Eki$f&j(R!b!USOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#Z&}#Z#[!Eb#[#]&}#]#^!Eb#^#a&}#a#b!Eb#b#g&}#g#h!Eb#h#i&}#i#j!Eb#j#m&}#m#n!Eb#n#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!f!GaZ(R!b!USOY!GYZw!GYwx!@Yx!P!GY!P!Q!HS!Q!}!GY!}#O!Ic#O#P!Bb#P;'S!GY;'S;=`!JZ<%lO!GY!f!HZb(R!b!USOY'}Zw'}x#O'}#P#Z'}#Z#[!HS#[#]'}#]#^!HS#^#a'}#a#b!HS#b#g'}#g#h!HS#h#i'}#i#j!HS#j#m'}#m#n!HS#n;'S'};'S;=`(f<%lO'}!f!IhX(R!bOY!IcZw!Icwx!Acx#O!Ic#O#P!A{#P#Q!GY#Q;'S!Ic;'S;=`!JT<%lO!Ic!f!JWP;=`<%l!Ic!f!J^P;=`<%l!GY(Q!Jh^$f&j(R!bOY!JaYZ&cZw!Jawx!Bwx!^!Ja!^!_!Ic!_#O!Ja#O#P!Cr#P#Q!<n#Q#o!Ja#o#p!Ic#p;'S!Ja;'S;=`!Kd<%lO!Ja(Q!KgP;=`<%l!Ja(Q!KmP;=`<%l!<n'`!Ky`$f&j(Op!USOY!KpYZ&cZr!Kprs!=ys!P!Kp!P!Q!L{!Q!^!Kp!^!_!Ns!_!}!Kp!}#O##z#O#P!Dj#P#o!Kp#o#p!Ns#p;'S!Kp;'S;=`#%T<%lO!Kp'`!MUi$f&j(Op!USOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#Z(r#Z#[!L{#[#](r#]#^!L{#^#a(r#a#b!L{#b#g(r#g#h!L{#h#i(r#i#j!L{#j#m(r#m#n!L{#n#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(rt!NzZ(Op!USOY!NsZr!Nsrs!@Ys!P!Ns!P!Q# m!Q!}!Ns!}#O#!|#O#P!Bb#P;'S!Ns;'S;=`##t<%lO!Nst# tb(Op!USOY)rZr)rs#O)r#P#Z)r#Z#[# m#[#])r#]#^# m#^#a)r#a#b# m#b#g)r#g#h# m#h#i)r#i#j# m#j#m)r#m#n# m#n;'S)r;'S;=`*Z<%lO)rt##RX(OpOY#!|Zr#!|rs!Acs#O#!|#O#P!A{#P#Q!Ns#Q;'S#!|;'S;=`##n<%lO#!|t##qP;=`<%l#!|t##wP;=`<%l!Ns'`#$R^$f&j(OpOY##zYZ&cZr##zrs!Bws!^##z!^!_#!|!_#O##z#O#P!Cr#P#Q!Kp#Q#o##z#o#p#!|#p;'S##z;'S;=`#$}<%lO##z'`#%QP;=`<%l##z'`#%WP;=`<%l!Kp(r#%fk$f&j(Op(R!b!USOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#Z%Z#Z#[#%Z#[#]%Z#]#^#%Z#^#a%Z#a#b#%Z#b#g%Z#g#h#%Z#h#i%Z#i#j#%Z#j#m%Z#m#n#%Z#n#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z#W#'d](Op(R!b!USOY#'ZZr#'Zrs!GYsw#'Zwx!Nsx!P#'Z!P!Q#(]!Q!}#'Z!}#O#)w#O#P!Bb#P;'S#'Z;'S;=`#*w<%lO#'Z#W#(fe(Op(R!b!USOY*gZr*grs'}sw*gwx)rx#O*g#P#Z*g#Z#[#(]#[#]*g#]#^#(]#^#a*g#a#b#(]#b#g*g#g#h#(]#h#i*g#i#j#(]#j#m*g#m#n#(]#n;'S*g;'S;=`+Z<%lO*g#W#*OZ(Op(R!bOY#)wZr#)wrs!Icsw#)wwx#!|x#O#)w#O#P!A{#P#Q#'Z#Q;'S#)w;'S;=`#*q<%lO#)w#W#*tP;=`<%l#)w#W#*zP;=`<%l#'Z(r#+W`$f&j(Op(R!bOY#*}YZ&cZr#*}rs!Jasw#*}wx##zx!^#*}!^!_#)w!_#O#*}#O#P!Cr#P#Q!;Z#Q#o#*}#o#p#)w#p;'S#*};'S;=`#,Y<%lO#*}(r#,]P;=`<%l#*}(r#,cP;=`<%l!;Z(CS#,sb$f&j(Op(R!b'v(;d!USOY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Kpx!P!;Z!P!Q#%Z!Q!^!;Z!^!_#'Z!_!}!;Z!}#O#*}#O#P!Dj#P#o!;Z#o#p#'Z#p;'S!;Z;'S;=`#,`<%lO!;Z(CS#.W_$f&j(Op(R!bS(;dOY#-{YZ&cZr#-{rs#/Vsw#-{wx#2gx!^#-{!^!_#4f!_#O#-{#O#P#0X#P#o#-{#o#p#4f#p;'S#-{;'S;=`#5e<%lO#-{(Bb#/`]$f&j(R!bS(;dOY#/VYZ&cZw#/Vwx#0Xx!^#/V!^!_#1j!_#O#/V#O#P#0X#P#o#/V#o#p#1j#p;'S#/V;'S;=`#2a<%lO#/V(AO#0`X$f&jS(;dOY#0XYZ&cZ!^#0X!^!_#0{!_#o#0X#o#p#0{#p;'S#0X;'S;=`#1d<%lO#0X(;d#1QSS(;dOY#0{Z;'S#0{;'S;=`#1^<%lO#0{(;d#1aP;=`<%l#0{(AO#1gP;=`<%l#0X(<v#1qW(R!bS(;dOY#1jZw#1jwx#0{x#O#1j#O#P#0{#P;'S#1j;'S;=`#2Z<%lO#1j(<v#2^P;=`<%l#1j(Bb#2dP;=`<%l#/V(Ap#2p]$f&j(OpS(;dOY#2gYZ&cZr#2grs#0Xs!^#2g!^!_#3i!_#O#2g#O#P#0X#P#o#2g#o#p#3i#p;'S#2g;'S;=`#4`<%lO#2g(<U#3pW(OpS(;dOY#3iZr#3irs#0{s#O#3i#O#P#0{#P;'S#3i;'S;=`#4Y<%lO#3i(<U#4]P;=`<%l#3i(Ap#4cP;=`<%l#2g(=h#4oY(Op(R!bS(;dOY#4fZr#4frs#1jsw#4fwx#3ix#O#4f#O#P#0{#P;'S#4f;'S;=`#5_<%lO#4f(=h#5bP;=`<%l#4f(CS#5hP;=`<%l#-{%#W#5xb$f&j$O$Id(Op(R!b!USOY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Kpx!P!;Z!P!Q#%Z!Q!^!;Z!^!_#'Z!_!}!;Z!}#O#*}#O#P!Dj#P#o!;Z#o#p#'Z#p;'S!;Z;'S;=`#,`<%lO!;Z+h#7_b$W#t$f&j(Op(R!b!USOY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Kpx!P!;Z!P!Q#%Z!Q!^!;Z!^!_#'Z!_!}!;Z!}#O#*}#O#P!Dj#P#o!;Z#o#p#'Z#p;'S!;Z;'S;=`#,`<%lO!;Z$/l#8rp$f&j(Op(R!bo$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!3Y!P!Q%Z!Q![#:v![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S#:v#S#U%Z#U#V#>Q#V#X%Z#X#Y!4|#Y#b%Z#b#c#<v#c#d#AY#d#l%Z#l#m#D[#m#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#;Rk$f&j(Op(R!bo$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!3Y!P!Q%Z!Q![#:v![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S#:v#S#X%Z#X#Y!4|#Y#b%Z#b#c#<v#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#=R_$f&j(Op(R!bo$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#>Zd$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#?i!R!S#?i!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#?i#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#?tf$f&j(Op(R!bo$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#?i!R!S#?i!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#?i#S#b%Z#b#c#<v#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#Acc$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#Bn!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#Bn#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#Bye$f&j(Op(R!bo$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#Bn!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#Bn#S#b%Z#b#c#<v#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#Deg$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#E|![!^%Z!^!_*g!_!c%Z!c!i#E|!i#O%Z#O#P&c#P#R%Z#R#S#E|#S#T%Z#T#Z#E|#Z#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#FXi$f&j(Op(R!bo$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#E|![!^%Z!^!_*g!_!c%Z!c!i#E|!i#O%Z#O#P&c#P#R%Z#R#S#E|#S#T%Z#T#Z#E|#Z#b%Z#b#c#<v#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%Gh#HT_!d$b$f&j#|%<f(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z)[#I__`l$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(@^#Jk^g!*v!h'.r(Op(R!b(tSOY*gZr*grs'}sw*gwx)rx!P*g!P!Q#Kg!Q!^*g!^!_#L]!_!`#M}!`#O*g#P;'S*g;'S;=`+Z<%lO*g(n#KpX$h&j(Op(R!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g$Kh#LfZ#n$Id(Op(R!bOY*gZr*grs'}sw*gwx)rx!_*g!_!`#MX!`#O*g#P;'S*g;'S;=`+Z<%lO*g$Kh#MbX$O$Id(Op(R!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g$Kh#NWX#o$Id(Op(R!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g%Gh$ Oa#[%?x$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`!a$!T!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#W$!`_#g$Ih$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%Gh$#nafBf#o$Id$c#|$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`$$s!`!a$%}!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S$%O_#o$Id$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S$&Ya#n$Id$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`!a$'_!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S$'j`#n$Id$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'+h$(wc(h$Ip$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P$*S!P!^%Z!^!_*g!_!a%Z!a!b$+^!b#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'+`$*__}'#p$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S$+i`$f&j#y$Id(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z#&^$,v_!{!Ln$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(@^$.Q_!P(8n$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(n$/UZ$f&jO!^$/w!^!_$0_!_#i$/w#i#j$0d#j#l$/w#l#m$2V#m#o$/w#o#p$0_#p;'S$/w;'S;=`$4b<%lO$/w(n$0OT^#S$f&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c#S$0dO^#S(n$0i[$f&jO!Q&c!Q![$1_![!^&c!_!c&c!c!i$1_!i#T&c#T#Z$1_#Z#o&c#o#p$3u#p;'S&c;'S;=`&w<%lO&c(n$1dZ$f&jO!Q&c!Q![$2V![!^&c!_!c&c!c!i$2V!i#T&c#T#Z$2V#Z#o&c#p;'S&c;'S;=`&w<%lO&c(n$2[Z$f&jO!Q&c!Q![$2}![!^&c!_!c&c!c!i$2}!i#T&c#T#Z$2}#Z#o&c#p;'S&c;'S;=`&w<%lO&c(n$3SZ$f&jO!Q&c!Q![$/w![!^&c!_!c&c!c!i$/w!i#T&c#T#Z$/w#Z#o&c#p;'S&c;'S;=`&w<%lO&c#S$3xR!Q![$4R!c!i$4R#T#Z$4R#S$4US!Q![$4R!c!i$4R#T#Z$4R#q#r$0_(n$4eP;=`<%l$/w!2r$4s_!V!+S$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S$5}`#v$Id$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&,v$7[_$f&j(Op(R!b(X&%WOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(CS$8jk$f&j(Op(R!b'{&;d$[#t([!LYOY%ZYZ&cZr%Zrs&}st%Ztu$8Zuw%Zwx(rx}%Z}!O$:_!O!Q%Z!Q![$8Z![!^%Z!^!_*g!_!c%Z!c!}$8Z!}#O%Z#O#P&c#P#R%Z#R#S$8Z#S#T%Z#T#o$8Z#o#p*g#p$g%Z$g;'S$8Z;'S;=`$<e<%lO$8Z+d$:jk$f&j(Op(R!b$[#tOY%ZYZ&cZr%Zrs&}st%Ztu$:_uw%Zwx(rx}%Z}!O$:_!O!Q%Z!Q![$:_![!^%Z!^!_*g!_!c%Z!c!}$:_!}#O%Z#O#P&c#P#R%Z#R#S$:_#S#T%Z#T#o$:_#o#p*g#p$g%Z$g;'S$:_;'S;=`$<_<%lO$:_+d$<bP;=`<%l$:_(CS$<hP;=`<%l$8Z!5p$<tX![!3l(Op(R!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g&CO$=la(o&;`$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p#q$+^#q;'S%Z;'S;=`+a<%lO%Z%#`$?O_!Z$I`r`$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(r$@Y_!pS$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(CS$Aj|$f&j(Op(R!b't(;d$Y#t'{&;d([!LYOX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$f%Z$f$g+g$g#BYEr#BY#BZ$AX#BZ$ISEr$IS$I_$AX$I_$JTEr$JT$JU$AX$JU$KVEr$KV$KW$AX$KW&FUEr&FU&FV$AX&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$AX?HUOEr(CS$Duk$f&j(Op(R!b'u(;d$Y#t'{&;d([!LYOY%ZYZ&cZr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$g%Z$g;'SEr;'S;=`I|<%lOEr\",\n tokenizers: [noSemicolon, incdecToken, jsx, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, insertSemicolon, new LocalTokenGroup(\"$S~RRtu[#O#Pg#S#T#|~_P#o#pb~gOt~~jVO#i!P#i#j!U#j#l!P#l#m!q#m;'S!P;'S;=`#v<%lO!P~!UO!R~~!XS!Q![!e!c!i!e#T#Z!e#o#p#Z~!hR!Q![!q!c!i!q#T#Z!q~!tR!Q![!}!c!i!}#T#Z!}~#QR!Q![!P!c!i!P#T#Z!P~#^R!Q![#g!c!i#g#T#Z#g~#jS!Q![#g!c!i#g#T#Z#g#q#r!P~#yP;=`<%l!P~$RO(Z~~\", 141, 332), new LocalTokenGroup(\"j~RQYZXz{^~^O'x~~aP!P!Qd~iO'y~~\", 25, 315)],\n topRules: {\"Script\":[0,6],\"SingleExpression\":[1,269],\"SingleClassItem\":[2,270]},\n dialects: {jsx: 0, ts: 14614},\n dynamicPrecedences: {\"69\":1,\"79\":1,\"81\":1,\"165\":1,\"193\":1},\n specialized: [{term: 319, get: (value) => spec_identifier[value] || -1},{term: 334, get: (value) => spec_word[value] || -1},{term: 70, get: (value) => spec_LessThan[value] || -1}],\n tokenPrec: 14638\n});\n\nexport { parser };\n", "import { parser } from '@lezer/javascript';\nimport { syntaxTree, LRLanguage, indentNodeProp, continuedIndent, flatIndent, delimitedIndent, foldNodeProp, foldInside, defineLanguageFacet, sublanguageProp, LanguageSupport } from '@codemirror/language';\nimport { EditorSelection } from '@codemirror/state';\nimport { EditorView } from '@codemirror/view';\nimport { snippetCompletion, ifNotIn, completeFromList } from '@codemirror/autocomplete';\nimport { NodeWeakMap, IterMode } from '@lezer/common';\n\n/**\nA collection of JavaScript-related\n[snippets](https://codemirror.net/6/docs/ref/#autocomplete.snippet).\n*/\nconst snippets = [\n /*@__PURE__*/snippetCompletion(\"function ${name}(${params}) {\\n\\t${}\\n}\", {\n label: \"function\",\n detail: \"definition\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\\n\\t${}\\n}\", {\n label: \"for\",\n detail: \"loop\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"for (let ${name} of ${collection}) {\\n\\t${}\\n}\", {\n label: \"for\",\n detail: \"of loop\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"do {\\n\\t${}\\n} while (${})\", {\n label: \"do\",\n detail: \"loop\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"while (${}) {\\n\\t${}\\n}\", {\n label: \"while\",\n detail: \"loop\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"try {\\n\\t${}\\n} catch (${error}) {\\n\\t${}\\n}\", {\n label: \"try\",\n detail: \"/ catch block\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"if (${}) {\\n\\t${}\\n}\", {\n label: \"if\",\n detail: \"block\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"if (${}) {\\n\\t${}\\n} else {\\n\\t${}\\n}\", {\n label: \"if\",\n detail: \"/ else block\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"class ${name} {\\n\\tconstructor(${params}) {\\n\\t\\t${}\\n\\t}\\n}\", {\n label: \"class\",\n detail: \"definition\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"import {${names}} from \\\"${module}\\\"\\n${}\", {\n label: \"import\",\n detail: \"named\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"import ${name} from \\\"${module}\\\"\\n${}\", {\n label: \"import\",\n detail: \"default\",\n type: \"keyword\"\n })\n];\n/**\nA collection of snippet completions for TypeScript. Includes the\nJavaScript [snippets](https://codemirror.net/6/docs/ref/#lang-javascript.snippets).\n*/\nconst typescriptSnippets = /*@__PURE__*/snippets.concat([\n /*@__PURE__*/snippetCompletion(\"interface ${name} {\\n\\t${}\\n}\", {\n label: \"interface\",\n detail: \"definition\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"type ${name} = ${type}\", {\n label: \"type\",\n detail: \"definition\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"enum ${name} {\\n\\t${}\\n}\", {\n label: \"enum\",\n detail: \"definition\",\n type: \"keyword\"\n })\n]);\n\nconst cache = /*@__PURE__*/new NodeWeakMap();\nconst ScopeNodes = /*@__PURE__*/new Set([\n \"Script\", \"Block\",\n \"FunctionExpression\", \"FunctionDeclaration\", \"ArrowFunction\", \"MethodDeclaration\",\n \"ForStatement\"\n]);\nfunction defID(type) {\n return (node, def) => {\n let id = node.node.getChild(\"VariableDefinition\");\n if (id)\n def(id, type);\n return true;\n };\n}\nconst functionContext = [\"FunctionDeclaration\"];\nconst gatherCompletions = {\n FunctionDeclaration: /*@__PURE__*/defID(\"function\"),\n ClassDeclaration: /*@__PURE__*/defID(\"class\"),\n ClassExpression: () => true,\n EnumDeclaration: /*@__PURE__*/defID(\"constant\"),\n TypeAliasDeclaration: /*@__PURE__*/defID(\"type\"),\n NamespaceDeclaration: /*@__PURE__*/defID(\"namespace\"),\n VariableDefinition(node, def) { if (!node.matchContext(functionContext))\n def(node, \"variable\"); },\n TypeDefinition(node, def) { def(node, \"type\"); },\n __proto__: null\n};\nfunction getScope(doc, node) {\n let cached = cache.get(node);\n if (cached)\n return cached;\n let completions = [], top = true;\n function def(node, type) {\n let name = doc.sliceString(node.from, node.to);\n completions.push({ label: name, type });\n }\n node.cursor(IterMode.IncludeAnonymous).iterate(node => {\n if (top) {\n top = false;\n }\n else if (node.name) {\n let gather = gatherCompletions[node.name];\n if (gather && gather(node, def) || ScopeNodes.has(node.name))\n return false;\n }\n else if (node.to - node.from > 8192) {\n // Allow caching for bigger internal nodes\n for (let c of getScope(doc, node.node))\n completions.push(c);\n return false;\n }\n });\n cache.set(node, completions);\n return completions;\n}\nconst Identifier = /^[\\w$\\xa1-\\uffff][\\w$\\d\\xa1-\\uffff]*$/;\nconst dontComplete = [\n \"TemplateString\", \"String\", \"RegExp\",\n \"LineComment\", \"BlockComment\",\n \"VariableDefinition\", \"TypeDefinition\", \"Label\",\n \"PropertyDefinition\", \"PropertyName\",\n \"PrivatePropertyDefinition\", \"PrivatePropertyName\",\n \".\", \"?.\"\n];\n/**\nCompletion source that looks up locally defined names in\nJavaScript code.\n*/\nfunction localCompletionSource(context) {\n let inner = syntaxTree(context.state).resolveInner(context.pos, -1);\n if (dontComplete.indexOf(inner.name) > -1)\n return null;\n let isWord = inner.name == \"VariableName\" ||\n inner.to - inner.from < 20 && Identifier.test(context.state.sliceDoc(inner.from, inner.to));\n if (!isWord && !context.explicit)\n return null;\n let options = [];\n for (let pos = inner; pos; pos = pos.parent) {\n if (ScopeNodes.has(pos.name))\n options = options.concat(getScope(context.state.doc, pos));\n }\n return {\n options,\n from: isWord ? inner.from : context.pos,\n validFor: Identifier\n };\n}\nfunction pathFor(read, member, name) {\n var _a;\n let path = [];\n for (;;) {\n let obj = member.firstChild, prop;\n if ((obj === null || obj === void 0 ? void 0 : obj.name) == \"VariableName\") {\n path.push(read(obj));\n return { path: path.reverse(), name };\n }\n else if ((obj === null || obj === void 0 ? void 0 : obj.name) == \"MemberExpression\" && ((_a = (prop = obj.lastChild)) === null || _a === void 0 ? void 0 : _a.name) == \"PropertyName\") {\n path.push(read(prop));\n member = obj;\n }\n else {\n return null;\n }\n }\n}\n/**\nHelper function for defining JavaScript completion sources. It\nreturns the completable name and object path for a completion\ncontext, or null if no name/property completion should happen at\nthat position. For example, when completing after `a.b.c` it will\nreturn `{path: [\"a\", \"b\"], name: \"c\"}`. When completing after `x`\nit will return `{path: [], name: \"x\"}`. When not in a property or\nname, it will return null if `context.explicit` is false, and\n`{path: [], name: \"\"}` otherwise.\n*/\nfunction completionPath(context) {\n let read = (node) => context.state.doc.sliceString(node.from, node.to);\n let inner = syntaxTree(context.state).resolveInner(context.pos, -1);\n if (inner.name == \"PropertyName\") {\n return pathFor(read, inner.parent, read(inner));\n }\n else if ((inner.name == \".\" || inner.name == \"?.\") && inner.parent.name == \"MemberExpression\") {\n return pathFor(read, inner.parent, \"\");\n }\n else if (dontComplete.indexOf(inner.name) > -1) {\n return null;\n }\n else if (inner.name == \"VariableName\" || inner.to - inner.from < 20 && Identifier.test(read(inner))) {\n return { path: [], name: read(inner) };\n }\n else if (inner.name == \"MemberExpression\") {\n return pathFor(read, inner, \"\");\n }\n else {\n return context.explicit ? { path: [], name: \"\" } : null;\n }\n}\nfunction enumeratePropertyCompletions(obj, top) {\n let options = [], seen = new Set;\n for (let depth = 0;; depth++) {\n for (let name of (Object.getOwnPropertyNames || Object.keys)(obj)) {\n if (!/^[a-zA-Z_$\\xaa-\\uffdc][\\w$\\xaa-\\uffdc]*$/.test(name) || seen.has(name))\n continue;\n seen.add(name);\n let value;\n try {\n value = obj[name];\n }\n catch (_) {\n continue;\n }\n options.push({\n label: name,\n type: typeof value == \"function\" ? (/^[A-Z]/.test(name) ? \"class\" : top ? \"function\" : \"method\")\n : top ? \"variable\" : \"property\",\n boost: -depth\n });\n }\n let next = Object.getPrototypeOf(obj);\n if (!next)\n return options;\n obj = next;\n }\n}\n/**\nDefines a [completion source](https://codemirror.net/6/docs/ref/#autocomplete.CompletionSource) that\ncompletes from the given scope object (for example `globalThis`).\nWill enter properties of the object when completing properties on\na directly-named path.\n*/\nfunction scopeCompletionSource(scope) {\n let cache = new Map;\n return (context) => {\n let path = completionPath(context);\n if (!path)\n return null;\n let target = scope;\n for (let step of path.path) {\n target = target[step];\n if (!target)\n return null;\n }\n let options = cache.get(target);\n if (!options)\n cache.set(target, options = enumeratePropertyCompletions(target, !path.path.length));\n return {\n from: context.pos - path.name.length,\n options,\n validFor: Identifier\n };\n };\n}\n\n/**\nA language provider based on the [Lezer JavaScript\nparser](https://github.com/lezer-parser/javascript), extended with\nhighlighting and indentation information.\n*/\nconst javascriptLanguage = /*@__PURE__*/LRLanguage.define({\n name: \"javascript\",\n parser: /*@__PURE__*/parser.configure({\n props: [\n /*@__PURE__*/indentNodeProp.add({\n IfStatement: /*@__PURE__*/continuedIndent({ except: /^\\s*({|else\\b)/ }),\n TryStatement: /*@__PURE__*/continuedIndent({ except: /^\\s*({|catch\\b|finally\\b)/ }),\n LabeledStatement: flatIndent,\n SwitchBody: context => {\n let after = context.textAfter, closed = /^\\s*\\}/.test(after), isCase = /^\\s*(case|default)\\b/.test(after);\n return context.baseIndent + (closed ? 0 : isCase ? 1 : 2) * context.unit;\n },\n Block: /*@__PURE__*/delimitedIndent({ closing: \"}\" }),\n ArrowFunction: cx => cx.baseIndent + cx.unit,\n \"TemplateString BlockComment\": () => null,\n \"Statement Property\": /*@__PURE__*/continuedIndent({ except: /^{/ }),\n JSXElement(context) {\n let closed = /^\\s*<\\//.test(context.textAfter);\n return context.lineIndent(context.node.from) + (closed ? 0 : context.unit);\n },\n JSXEscape(context) {\n let closed = /\\s*\\}/.test(context.textAfter);\n return context.lineIndent(context.node.from) + (closed ? 0 : context.unit);\n },\n \"JSXOpenTag JSXSelfClosingTag\"(context) {\n return context.column(context.node.from) + context.unit;\n }\n }),\n /*@__PURE__*/foldNodeProp.add({\n \"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType\": foldInside,\n BlockComment(tree) { return { from: tree.from + 2, to: tree.to - 2 }; }\n })\n ]\n }),\n languageData: {\n closeBrackets: { brackets: [\"(\", \"[\", \"{\", \"'\", '\"', \"`\"] },\n commentTokens: { line: \"//\", block: { open: \"/*\", close: \"*/\" } },\n indentOnInput: /^\\s*(?:case |default:|\\{|\\}|<\\/)$/,\n wordChars: \"$\"\n }\n});\nconst jsxSublanguage = {\n test: node => /^JSX/.test(node.name),\n facet: /*@__PURE__*/defineLanguageFacet({ commentTokens: { block: { open: \"{/*\", close: \"*/}\" } } })\n};\n/**\nA language provider for TypeScript.\n*/\nconst typescriptLanguage = /*@__PURE__*/javascriptLanguage.configure({ dialect: \"ts\" }, \"typescript\");\n/**\nLanguage provider for JSX.\n*/\nconst jsxLanguage = /*@__PURE__*/javascriptLanguage.configure({\n dialect: \"jsx\",\n props: [/*@__PURE__*/sublanguageProp.add(n => n.isTop ? [jsxSublanguage] : undefined)]\n});\n/**\nLanguage provider for JSX + TypeScript.\n*/\nconst tsxLanguage = /*@__PURE__*/javascriptLanguage.configure({\n dialect: \"jsx ts\",\n props: [/*@__PURE__*/sublanguageProp.add(n => n.isTop ? [jsxSublanguage] : undefined)]\n}, \"typescript\");\nlet kwCompletion = (name) => ({ label: name, type: \"keyword\" });\nconst keywords = /*@__PURE__*/\"break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield\".split(\" \").map(kwCompletion);\nconst typescriptKeywords = /*@__PURE__*/keywords.concat(/*@__PURE__*/[\"declare\", \"implements\", \"private\", \"protected\", \"public\"].map(kwCompletion));\n/**\nJavaScript support. Includes [snippet](https://codemirror.net/6/docs/ref/#lang-javascript.snippets)\ncompletion.\n*/\nfunction javascript(config = {}) {\n let lang = config.jsx ? (config.typescript ? tsxLanguage : jsxLanguage)\n : config.typescript ? typescriptLanguage : javascriptLanguage;\n let completions = config.typescript ? typescriptSnippets.concat(typescriptKeywords) : snippets.concat(keywords);\n return new LanguageSupport(lang, [\n javascriptLanguage.data.of({\n autocomplete: ifNotIn(dontComplete, completeFromList(completions))\n }),\n javascriptLanguage.data.of({\n autocomplete: localCompletionSource\n }),\n config.jsx ? autoCloseTags : [],\n ]);\n}\nfunction findOpenTag(node) {\n for (;;) {\n if (node.name == \"JSXOpenTag\" || node.name == \"JSXSelfClosingTag\" || node.name == \"JSXFragmentTag\")\n return node;\n if (node.name == \"JSXEscape\" || !node.parent)\n return null;\n node = node.parent;\n }\n}\nfunction elementName(doc, tree, max = doc.length) {\n for (let ch = tree === null || tree === void 0 ? void 0 : tree.firstChild; ch; ch = ch.nextSibling) {\n if (ch.name == \"JSXIdentifier\" || ch.name == \"JSXBuiltin\" || ch.name == \"JSXNamespacedName\" ||\n ch.name == \"JSXMemberExpression\")\n return doc.sliceString(ch.from, Math.min(ch.to, max));\n }\n return \"\";\n}\nconst android = typeof navigator == \"object\" && /*@__PURE__*//Android\\b/.test(navigator.userAgent);\n/**\nExtension that will automatically insert JSX close tags when a `>` or\n`/` is typed.\n*/\nconst autoCloseTags = /*@__PURE__*/EditorView.inputHandler.of((view, from, to, text, defaultInsert) => {\n if ((android ? view.composing : view.compositionStarted) || view.state.readOnly ||\n from != to || (text != \">\" && text != \"/\") ||\n !javascriptLanguage.isActiveAt(view.state, from, -1))\n return false;\n let base = defaultInsert(), { state } = base;\n let closeTags = state.changeByRange(range => {\n var _a;\n let { head } = range, around = syntaxTree(state).resolveInner(head - 1, -1), name;\n if (around.name == \"JSXStartTag\")\n around = around.parent;\n if (state.doc.sliceString(head - 1, head) != text || around.name == \"JSXAttributeValue\" && around.to > head) ;\n else if (text == \">\" && around.name == \"JSXFragmentTag\") {\n return { range, changes: { from: head, insert: `</>` } };\n }\n else if (text == \"/\" && around.name == \"JSXStartCloseTag\") {\n let empty = around.parent, base = empty.parent;\n if (base && empty.from == head - 2 &&\n ((name = elementName(state.doc, base.firstChild, head)) || ((_a = base.firstChild) === null || _a === void 0 ? void 0 : _a.name) == \"JSXFragmentTag\")) {\n let insert = `${name}>`;\n return { range: EditorSelection.cursor(head + insert.length, -1), changes: { from: head, insert } };\n }\n }\n else if (text == \">\") {\n let openTag = findOpenTag(around);\n if (openTag &&\n !/^\\/?>|^<\\//.test(state.doc.sliceString(head, head + 2)) &&\n (name = elementName(state.doc, openTag, head)))\n return { range, changes: { from: head, insert: `</${name}>` } };\n }\n return { range };\n });\n if (closeTags.changes.empty)\n return false;\n view.dispatch([\n base,\n state.update(closeTags, { userEvent: \"input.complete\", scrollIntoView: true })\n ]);\n return true;\n});\n\n/**\nConnects an [ESLint](https://eslint.org/) linter to CodeMirror's\n[lint](https://codemirror.net/6/docs/ref/#lint) integration. `eslint` should be an instance of the\n[`Linter`](https://eslint.org/docs/developer-guide/nodejs-api#linter)\nclass, and `config` an optional ESLint configuration. The return\nvalue of this function can be passed to [`linter`](https://codemirror.net/6/docs/ref/#lint.linter)\nto create a JavaScript linting extension.\n\nNote that ESLint targets node, and is tricky to run in the\nbrowser. The\n[eslint-linter-browserify](https://github.com/UziTech/eslint-linter-browserify)\npackage may help with that (see\n[example](https://github.com/UziTech/eslint-linter-browserify/blob/master/example/script.js)).\n*/\nfunction esLint(eslint, config) {\n if (!config) {\n config = {\n parserOptions: { ecmaVersion: 2019, sourceType: \"module\" },\n env: { browser: true, node: true, es6: true, es2015: true, es2017: true, es2020: true },\n rules: {}\n };\n eslint.getRules().forEach((desc, name) => {\n if (desc.meta.docs.recommended)\n config.rules[name] = 2;\n });\n }\n return (view) => {\n let { state } = view, found = [];\n for (let { from, to } of javascriptLanguage.findRegions(state)) {\n let fromLine = state.doc.lineAt(from), offset = { line: fromLine.number - 1, col: from - fromLine.from, pos: from };\n for (let d of eslint.verify(state.sliceDoc(from, to), config))\n found.push(translateDiagnostic(d, state.doc, offset));\n }\n return found;\n };\n}\nfunction mapPos(line, col, doc, offset) {\n return doc.line(line + offset.line).from + col + (line == 1 ? offset.col - 1 : -1);\n}\nfunction translateDiagnostic(input, doc, offset) {\n let start = mapPos(input.line, input.column, doc, offset);\n let result = {\n from: start,\n to: input.endLine != null && input.endColumn != 1 ? mapPos(input.endLine, input.endColumn, doc, offset) : start,\n message: input.message,\n source: input.ruleId ? \"eslint:\" + input.ruleId : \"eslint\",\n severity: input.severity == 1 ? \"warning\" : \"error\",\n };\n if (input.fix) {\n let { range, text } = input.fix, from = range[0] + offset.pos - start, to = range[1] + offset.pos - start;\n result.actions = [{\n name: \"fix\",\n apply(view, start) {\n view.dispatch({ changes: { from: start + from, to: start + to, insert: text }, scrollIntoView: true });\n }\n }];\n }\n return result;\n}\n\nexport { autoCloseTags, completionPath, esLint, javascript, javascriptLanguage, jsxLanguage, localCompletionSource, scopeCompletionSource, snippets, tsxLanguage, typescriptLanguage, typescriptSnippets };\n", "import { parser, configureNesting } from '@lezer/html';\nimport { cssLanguage, css } from '@codemirror/lang-css';\nimport { javascriptLanguage, typescriptLanguage, jsxLanguage, tsxLanguage, javascript } from '@codemirror/lang-javascript';\nimport { EditorView } from '@codemirror/view';\nimport { EditorSelection } from '@codemirror/state';\nimport { syntaxTree, LRLanguage, indentNodeProp, foldNodeProp, bracketMatchingHandle, LanguageSupport } from '@codemirror/language';\n\nconst Targets = [\"_blank\", \"_self\", \"_top\", \"_parent\"];\nconst Charsets = [\"ascii\", \"utf-8\", \"utf-16\", \"latin1\", \"latin1\"];\nconst Methods = [\"get\", \"post\", \"put\", \"delete\"];\nconst Encs = [\"application/x-www-form-urlencoded\", \"multipart/form-data\", \"text/plain\"];\nconst Bool = [\"true\", \"false\"];\nconst S = {}; // Empty tag spec\nconst Tags = {\n a: {\n attrs: {\n href: null, ping: null, type: null,\n media: null,\n target: Targets,\n hreflang: null\n }\n },\n abbr: S,\n address: S,\n area: {\n attrs: {\n alt: null, coords: null, href: null, target: null, ping: null,\n media: null, hreflang: null, type: null,\n shape: [\"default\", \"rect\", \"circle\", \"poly\"]\n }\n },\n article: S,\n aside: S,\n audio: {\n attrs: {\n src: null, mediagroup: null,\n crossorigin: [\"anonymous\", \"use-credentials\"],\n preload: [\"none\", \"metadata\", \"auto\"],\n autoplay: [\"autoplay\"],\n loop: [\"loop\"],\n controls: [\"controls\"]\n }\n },\n b: S,\n base: { attrs: { href: null, target: Targets } },\n bdi: S,\n bdo: S,\n blockquote: { attrs: { cite: null } },\n body: S,\n br: S,\n button: {\n attrs: {\n form: null, formaction: null, name: null, value: null,\n autofocus: [\"autofocus\"],\n disabled: [\"autofocus\"],\n formenctype: Encs,\n formmethod: Methods,\n formnovalidate: [\"novalidate\"],\n formtarget: Targets,\n type: [\"submit\", \"reset\", \"button\"]\n }\n },\n canvas: { attrs: { width: null, height: null } },\n caption: S,\n center: S,\n cite: S,\n code: S,\n col: { attrs: { span: null } },\n colgroup: { attrs: { span: null } },\n command: {\n attrs: {\n type: [\"command\", \"checkbox\", \"radio\"],\n label: null, icon: null, radiogroup: null, command: null, title: null,\n disabled: [\"disabled\"],\n checked: [\"checked\"]\n }\n },\n data: { attrs: { value: null } },\n datagrid: { attrs: { disabled: [\"disabled\"], multiple: [\"multiple\"] } },\n datalist: { attrs: { data: null } },\n dd: S,\n del: { attrs: { cite: null, datetime: null } },\n details: { attrs: { open: [\"open\"] } },\n dfn: S,\n div: S,\n dl: S,\n dt: S,\n em: S,\n embed: { attrs: { src: null, type: null, width: null, height: null } },\n eventsource: { attrs: { src: null } },\n fieldset: { attrs: { disabled: [\"disabled\"], form: null, name: null } },\n figcaption: S,\n figure: S,\n footer: S,\n form: {\n attrs: {\n action: null, name: null,\n \"accept-charset\": Charsets,\n autocomplete: [\"on\", \"off\"],\n enctype: Encs,\n method: Methods,\n novalidate: [\"novalidate\"],\n target: Targets\n }\n },\n h1: S, h2: S, h3: S, h4: S, h5: S, h6: S,\n head: {\n children: [\"title\", \"base\", \"link\", \"style\", \"meta\", \"script\", \"noscript\", \"command\"]\n },\n header: S,\n hgroup: S,\n hr: S,\n html: {\n attrs: { manifest: null }\n },\n i: S,\n iframe: {\n attrs: {\n src: null, srcdoc: null, name: null, width: null, height: null,\n sandbox: [\"allow-top-navigation\", \"allow-same-origin\", \"allow-forms\", \"allow-scripts\"],\n seamless: [\"seamless\"]\n }\n },\n img: {\n attrs: {\n alt: null, src: null, ismap: null, usemap: null, width: null, height: null,\n crossorigin: [\"anonymous\", \"use-credentials\"]\n }\n },\n input: {\n attrs: {\n alt: null, dirname: null, form: null, formaction: null,\n height: null, list: null, max: null, maxlength: null, min: null,\n name: null, pattern: null, placeholder: null, size: null, src: null,\n step: null, value: null, width: null,\n accept: [\"audio/*\", \"video/*\", \"image/*\"],\n autocomplete: [\"on\", \"off\"],\n autofocus: [\"autofocus\"],\n checked: [\"checked\"],\n disabled: [\"disabled\"],\n formenctype: Encs,\n formmethod: Methods,\n formnovalidate: [\"novalidate\"],\n formtarget: Targets,\n multiple: [\"multiple\"],\n readonly: [\"readonly\"],\n required: [\"required\"],\n type: [\"hidden\", \"text\", \"search\", \"tel\", \"url\", \"email\", \"password\", \"datetime\", \"date\", \"month\",\n \"week\", \"time\", \"datetime-local\", \"number\", \"range\", \"color\", \"checkbox\", \"radio\",\n \"file\", \"submit\", \"image\", \"reset\", \"button\"]\n }\n },\n ins: { attrs: { cite: null, datetime: null } },\n kbd: S,\n keygen: {\n attrs: {\n challenge: null, form: null, name: null,\n autofocus: [\"autofocus\"],\n disabled: [\"disabled\"],\n keytype: [\"RSA\"]\n }\n },\n label: { attrs: { for: null, form: null } },\n legend: S,\n li: { attrs: { value: null } },\n link: {\n attrs: {\n href: null, type: null,\n hreflang: null,\n media: null,\n sizes: [\"all\", \"16x16\", \"16x16 32x32\", \"16x16 32x32 64x64\"]\n }\n },\n map: { attrs: { name: null } },\n mark: S,\n menu: { attrs: { label: null, type: [\"list\", \"context\", \"toolbar\"] } },\n meta: {\n attrs: {\n content: null,\n charset: Charsets,\n name: [\"viewport\", \"application-name\", \"author\", \"description\", \"generator\", \"keywords\"],\n \"http-equiv\": [\"content-language\", \"content-type\", \"default-style\", \"refresh\"]\n }\n },\n meter: { attrs: { value: null, min: null, low: null, high: null, max: null, optimum: null } },\n nav: S,\n noscript: S,\n object: {\n attrs: {\n data: null, type: null, name: null, usemap: null, form: null, width: null, height: null,\n typemustmatch: [\"typemustmatch\"]\n }\n },\n ol: { attrs: { reversed: [\"reversed\"], start: null, type: [\"1\", \"a\", \"A\", \"i\", \"I\"] },\n children: [\"li\", \"script\", \"template\", \"ul\", \"ol\"] },\n optgroup: { attrs: { disabled: [\"disabled\"], label: null } },\n option: { attrs: { disabled: [\"disabled\"], label: null, selected: [\"selected\"], value: null } },\n output: { attrs: { for: null, form: null, name: null } },\n p: S,\n param: { attrs: { name: null, value: null } },\n pre: S,\n progress: { attrs: { value: null, max: null } },\n q: { attrs: { cite: null } },\n rp: S,\n rt: S,\n ruby: S,\n samp: S,\n script: {\n attrs: {\n type: [\"text/javascript\"],\n src: null,\n async: [\"async\"],\n defer: [\"defer\"],\n charset: Charsets\n }\n },\n section: S,\n select: {\n attrs: {\n form: null, name: null, size: null,\n autofocus: [\"autofocus\"],\n disabled: [\"disabled\"],\n multiple: [\"multiple\"]\n }\n },\n slot: { attrs: { name: null } },\n small: S,\n source: { attrs: { src: null, type: null, media: null } },\n span: S,\n strong: S,\n style: {\n attrs: {\n type: [\"text/css\"],\n media: null,\n scoped: null\n }\n },\n sub: S,\n summary: S,\n sup: S,\n table: S,\n tbody: S,\n td: { attrs: { colspan: null, rowspan: null, headers: null } },\n template: S,\n textarea: {\n attrs: {\n dirname: null, form: null, maxlength: null, name: null, placeholder: null,\n rows: null, cols: null,\n autofocus: [\"autofocus\"],\n disabled: [\"disabled\"],\n readonly: [\"readonly\"],\n required: [\"required\"],\n wrap: [\"soft\", \"hard\"]\n }\n },\n tfoot: S,\n th: { attrs: { colspan: null, rowspan: null, headers: null, scope: [\"row\", \"col\", \"rowgroup\", \"colgroup\"] } },\n thead: S,\n time: { attrs: { datetime: null } },\n title: S,\n tr: S,\n track: {\n attrs: {\n src: null, label: null, default: null,\n kind: [\"subtitles\", \"captions\", \"descriptions\", \"chapters\", \"metadata\"],\n srclang: null\n }\n },\n ul: { children: [\"li\", \"script\", \"template\", \"ul\", \"ol\"] },\n var: S,\n video: {\n attrs: {\n src: null, poster: null, width: null, height: null,\n crossorigin: [\"anonymous\", \"use-credentials\"],\n preload: [\"auto\", \"metadata\", \"none\"],\n autoplay: [\"autoplay\"],\n mediagroup: [\"movie\"],\n muted: [\"muted\"],\n controls: [\"controls\"]\n }\n },\n wbr: S\n};\nconst GlobalAttrs = {\n accesskey: null,\n class: null,\n contenteditable: Bool,\n contextmenu: null,\n dir: [\"ltr\", \"rtl\", \"auto\"],\n draggable: [\"true\", \"false\", \"auto\"],\n dropzone: [\"copy\", \"move\", \"link\", \"string:\", \"file:\"],\n hidden: [\"hidden\"],\n id: null,\n inert: [\"inert\"],\n itemid: null,\n itemprop: null,\n itemref: null,\n itemscope: [\"itemscope\"],\n itemtype: null,\n lang: [\"ar\", \"bn\", \"de\", \"en-GB\", \"en-US\", \"es\", \"fr\", \"hi\", \"id\", \"ja\", \"pa\", \"pt\", \"ru\", \"tr\", \"zh\"],\n spellcheck: Bool,\n autocorrect: Bool,\n autocapitalize: Bool,\n style: null,\n tabindex: null,\n title: null,\n translate: [\"yes\", \"no\"],\n rel: [\"stylesheet\", \"alternate\", \"author\", \"bookmark\", \"help\", \"license\", \"next\", \"nofollow\", \"noreferrer\", \"prefetch\", \"prev\", \"search\", \"tag\"],\n role: /*@__PURE__*/\"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer\".split(\" \"),\n \"aria-activedescendant\": null,\n \"aria-atomic\": Bool,\n \"aria-autocomplete\": [\"inline\", \"list\", \"both\", \"none\"],\n \"aria-busy\": Bool,\n \"aria-checked\": [\"true\", \"false\", \"mixed\", \"undefined\"],\n \"aria-controls\": null,\n \"aria-describedby\": null,\n \"aria-disabled\": Bool,\n \"aria-dropeffect\": null,\n \"aria-expanded\": [\"true\", \"false\", \"undefined\"],\n \"aria-flowto\": null,\n \"aria-grabbed\": [\"true\", \"false\", \"undefined\"],\n \"aria-haspopup\": Bool,\n \"aria-hidden\": Bool,\n \"aria-invalid\": [\"true\", \"false\", \"grammar\", \"spelling\"],\n \"aria-label\": null,\n \"aria-labelledby\": null,\n \"aria-level\": null,\n \"aria-live\": [\"off\", \"polite\", \"assertive\"],\n \"aria-multiline\": Bool,\n \"aria-multiselectable\": Bool,\n \"aria-owns\": null,\n \"aria-posinset\": null,\n \"aria-pressed\": [\"true\", \"false\", \"mixed\", \"undefined\"],\n \"aria-readonly\": Bool,\n \"aria-relevant\": null,\n \"aria-required\": Bool,\n \"aria-selected\": [\"true\", \"false\", \"undefined\"],\n \"aria-setsize\": null,\n \"aria-sort\": [\"ascending\", \"descending\", \"none\", \"other\"],\n \"aria-valuemax\": null,\n \"aria-valuemin\": null,\n \"aria-valuenow\": null,\n \"aria-valuetext\": null\n};\nconst eventAttributes = /*@__PURE__*/(\"beforeunload copy cut dragstart dragover dragleave dragenter dragend \" +\n \"drag paste focus blur change click load mousedown mouseenter mouseleave \" +\n \"mouseup keydown keyup resize scroll unload\").split(\" \").map(n => \"on\" + n);\nfor (let a of eventAttributes)\n GlobalAttrs[a] = null;\nclass Schema {\n constructor(extraTags, extraAttrs) {\n this.tags = Object.assign(Object.assign({}, Tags), extraTags);\n this.globalAttrs = Object.assign(Object.assign({}, GlobalAttrs), extraAttrs);\n this.allTags = Object.keys(this.tags);\n this.globalAttrNames = Object.keys(this.globalAttrs);\n }\n}\nSchema.default = /*@__PURE__*/new Schema;\nfunction elementName(doc, tree, max = doc.length) {\n if (!tree)\n return \"\";\n let tag = tree.firstChild;\n let name = tag && tag.getChild(\"TagName\");\n return name ? doc.sliceString(name.from, Math.min(name.to, max)) : \"\";\n}\nfunction findParentElement(tree, skip = false) {\n for (; tree; tree = tree.parent)\n if (tree.name == \"Element\") {\n if (skip)\n skip = false;\n else\n return tree;\n }\n return null;\n}\nfunction allowedChildren(doc, tree, schema) {\n let parentInfo = schema.tags[elementName(doc, findParentElement(tree))];\n return (parentInfo === null || parentInfo === void 0 ? void 0 : parentInfo.children) || schema.allTags;\n}\nfunction openTags(doc, tree) {\n let open = [];\n for (let parent = findParentElement(tree); parent && !parent.type.isTop; parent = findParentElement(parent.parent)) {\n let tagName = elementName(doc, parent);\n if (tagName && parent.lastChild.name == \"CloseTag\")\n break;\n if (tagName && open.indexOf(tagName) < 0 && (tree.name == \"EndTag\" || tree.from >= parent.firstChild.to))\n open.push(tagName);\n }\n return open;\n}\nconst identifier = /^[:\\-\\.\\w\\u00b7-\\uffff]*$/;\nfunction completeTag(state, schema, tree, from, to) {\n let end = /\\s*>/.test(state.sliceDoc(to, to + 5)) ? \"\" : \">\";\n let parent = findParentElement(tree, true);\n return { from, to,\n options: allowedChildren(state.doc, parent, schema).map(tagName => ({ label: tagName, type: \"type\" })).concat(openTags(state.doc, tree).map((tag, i) => ({ label: \"/\" + tag, apply: \"/\" + tag + end,\n type: \"type\", boost: 99 - i }))),\n validFor: /^\\/?[:\\-\\.\\w\\u00b7-\\uffff]*$/ };\n}\nfunction completeCloseTag(state, tree, from, to) {\n let end = /\\s*>/.test(state.sliceDoc(to, to + 5)) ? \"\" : \">\";\n return { from, to,\n options: openTags(state.doc, tree).map((tag, i) => ({ label: tag, apply: tag + end, type: \"type\", boost: 99 - i })),\n validFor: identifier };\n}\nfunction completeStartTag(state, schema, tree, pos) {\n let options = [], level = 0;\n for (let tagName of allowedChildren(state.doc, tree, schema))\n options.push({ label: \"<\" + tagName, type: \"type\" });\n for (let open of openTags(state.doc, tree))\n options.push({ label: \"</\" + open + \">\", type: \"type\", boost: 99 - level++ });\n return { from: pos, to: pos, options, validFor: /^<\\/?[:\\-\\.\\w\\u00b7-\\uffff]*$/ };\n}\nfunction completeAttrName(state, schema, tree, from, to) {\n let elt = findParentElement(tree), info = elt ? schema.tags[elementName(state.doc, elt)] : null;\n let localAttrs = info && info.attrs ? Object.keys(info.attrs) : [];\n let names = info && info.globalAttrs === false ? localAttrs\n : localAttrs.length ? localAttrs.concat(schema.globalAttrNames) : schema.globalAttrNames;\n return { from, to,\n options: names.map(attrName => ({ label: attrName, type: \"property\" })),\n validFor: identifier };\n}\nfunction completeAttrValue(state, schema, tree, from, to) {\n var _a;\n let nameNode = (_a = tree.parent) === null || _a === void 0 ? void 0 : _a.getChild(\"AttributeName\");\n let options = [], token = undefined;\n if (nameNode) {\n let attrName = state.sliceDoc(nameNode.from, nameNode.to);\n let attrs = schema.globalAttrs[attrName];\n if (!attrs) {\n let elt = findParentElement(tree), info = elt ? schema.tags[elementName(state.doc, elt)] : null;\n attrs = (info === null || info === void 0 ? void 0 : info.attrs) && info.attrs[attrName];\n }\n if (attrs) {\n let base = state.sliceDoc(from, to).toLowerCase(), quoteStart = '\"', quoteEnd = '\"';\n if (/^['\"]/.test(base)) {\n token = base[0] == '\"' ? /^[^\"]*$/ : /^[^']*$/;\n quoteStart = \"\";\n quoteEnd = state.sliceDoc(to, to + 1) == base[0] ? \"\" : base[0];\n base = base.slice(1);\n from++;\n }\n else {\n token = /^[^\\s<>='\"]*$/;\n }\n for (let value of attrs)\n options.push({ label: value, apply: quoteStart + value + quoteEnd, type: \"constant\" });\n }\n }\n return { from, to, options, validFor: token };\n}\nfunction htmlCompletionFor(schema, context) {\n let { state, pos } = context, tree = syntaxTree(state).resolveInner(pos, -1), around = tree.resolve(pos);\n for (let scan = pos, before; around == tree && (before = tree.childBefore(scan));) {\n let last = before.lastChild;\n if (!last || !last.type.isError || last.from < last.to)\n break;\n around = tree = before;\n scan = last.from;\n }\n if (tree.name == \"TagName\") {\n return tree.parent && /CloseTag$/.test(tree.parent.name) ? completeCloseTag(state, tree, tree.from, pos)\n : completeTag(state, schema, tree, tree.from, pos);\n }\n else if (tree.name == \"StartTag\") {\n return completeTag(state, schema, tree, pos, pos);\n }\n else if (tree.name == \"StartCloseTag\" || tree.name == \"IncompleteCloseTag\") {\n return completeCloseTag(state, tree, pos, pos);\n }\n else if (tree.name == \"OpenTag\" || tree.name == \"SelfClosingTag\" || tree.name == \"AttributeName\") {\n return completeAttrName(state, schema, tree, tree.name == \"AttributeName\" ? tree.from : pos, pos);\n }\n else if (tree.name == \"Is\" || tree.name == \"AttributeValue\" || tree.name == \"UnquotedAttributeValue\") {\n return completeAttrValue(state, schema, tree, tree.name == \"Is\" ? pos : tree.from, pos);\n }\n else if (context.explicit && (around.name == \"Element\" || around.name == \"Text\" || around.name == \"Document\")) {\n return completeStartTag(state, schema, tree, pos);\n }\n else {\n return null;\n }\n}\n/**\nHTML tag completion. Opens and closes tags and attributes in a\ncontext-aware way.\n*/\nfunction htmlCompletionSource(context) {\n return htmlCompletionFor(Schema.default, context);\n}\n/**\nCreate a completion source for HTML extended with additional tags\nor attributes.\n*/\nfunction htmlCompletionSourceWith(config) {\n let { extraTags, extraGlobalAttributes: extraAttrs } = config;\n let schema = extraAttrs || extraTags ? new Schema(extraTags, extraAttrs) : Schema.default;\n return (context) => htmlCompletionFor(schema, context);\n}\n\nconst jsonParser = /*@__PURE__*/javascriptLanguage.parser.configure({ top: \"SingleExpression\" });\nconst defaultNesting = [\n { tag: \"script\",\n attrs: attrs => attrs.type == \"text/typescript\" || attrs.lang == \"ts\",\n parser: typescriptLanguage.parser },\n { tag: \"script\",\n attrs: attrs => attrs.type == \"text/babel\" || attrs.type == \"text/jsx\",\n parser: jsxLanguage.parser },\n { tag: \"script\",\n attrs: attrs => attrs.type == \"text/typescript-jsx\",\n parser: tsxLanguage.parser },\n { tag: \"script\",\n attrs(attrs) {\n return /^(importmap|speculationrules|application\\/(.+\\+)?json)$/i.test(attrs.type);\n },\n parser: jsonParser },\n { tag: \"script\",\n attrs(attrs) {\n return !attrs.type || /^(?:text|application)\\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(attrs.type);\n },\n parser: javascriptLanguage.parser },\n { tag: \"style\",\n attrs(attrs) {\n return (!attrs.lang || attrs.lang == \"css\") && (!attrs.type || /^(text\\/)?(x-)?(stylesheet|css)$/i.test(attrs.type));\n },\n parser: cssLanguage.parser }\n];\nconst defaultAttrs = /*@__PURE__*/[\n { name: \"style\",\n parser: /*@__PURE__*/cssLanguage.parser.configure({ top: \"Styles\" }) }\n].concat(/*@__PURE__*/eventAttributes.map(name => ({ name, parser: javascriptLanguage.parser })));\n/**\nA language provider based on the [Lezer HTML\nparser](https://github.com/lezer-parser/html), extended with the\nJavaScript and CSS parsers to parse the content of `<script>` and\n`<style>` tags.\n*/\nconst htmlPlain = /*@__PURE__*/LRLanguage.define({\n name: \"html\",\n parser: /*@__PURE__*/parser.configure({\n props: [\n /*@__PURE__*/indentNodeProp.add({\n Element(context) {\n let after = /^(\\s*)(<\\/)?/.exec(context.textAfter);\n if (context.node.to <= context.pos + after[0].length)\n return context.continue();\n return context.lineIndent(context.node.from) + (after[2] ? 0 : context.unit);\n },\n \"OpenTag CloseTag SelfClosingTag\"(context) {\n return context.column(context.node.from) + context.unit;\n },\n Document(context) {\n if (context.pos + /\\s*/.exec(context.textAfter)[0].length < context.node.to)\n return context.continue();\n let endElt = null, close;\n for (let cur = context.node;;) {\n let last = cur.lastChild;\n if (!last || last.name != \"Element\" || last.to != cur.to)\n break;\n endElt = cur = last;\n }\n if (endElt && !((close = endElt.lastChild) && (close.name == \"CloseTag\" || close.name == \"SelfClosingTag\")))\n return context.lineIndent(endElt.from) + context.unit;\n return null;\n }\n }),\n /*@__PURE__*/foldNodeProp.add({\n Element(node) {\n let first = node.firstChild, last = node.lastChild;\n if (!first || first.name != \"OpenTag\")\n return null;\n return { from: first.to, to: last.name == \"CloseTag\" ? last.from : node.to };\n }\n }),\n /*@__PURE__*/bracketMatchingHandle.add({\n \"OpenTag CloseTag\": node => node.getChild(\"TagName\")\n })\n ]\n }),\n languageData: {\n commentTokens: { block: { open: \"<!--\", close: \"-->\" } },\n indentOnInput: /^\\s*<\\/\\w+\\W$/,\n wordChars: \"-._\"\n }\n});\n/**\nA language provider based on the [Lezer HTML\nparser](https://github.com/lezer-parser/html), extended with the\nJavaScript and CSS parsers to parse the content of `<script>` and\n`<style>` tags.\n*/\nconst htmlLanguage = /*@__PURE__*/htmlPlain.configure({\n wrap: /*@__PURE__*/configureNesting(defaultNesting, defaultAttrs)\n});\n/**\nLanguage support for HTML, including\n[`htmlCompletion`](https://codemirror.net/6/docs/ref/#lang-html.htmlCompletion) and JavaScript and\nCSS support extensions.\n*/\nfunction html(config = {}) {\n let dialect = \"\", wrap;\n if (config.matchClosingTags === false)\n dialect = \"noMatch\";\n if (config.selfClosingTags === true)\n dialect = (dialect ? dialect + \" \" : \"\") + \"selfClosing\";\n if (config.nestedLanguages && config.nestedLanguages.length ||\n config.nestedAttributes && config.nestedAttributes.length)\n wrap = configureNesting((config.nestedLanguages || []).concat(defaultNesting), (config.nestedAttributes || []).concat(defaultAttrs));\n let lang = wrap ? htmlPlain.configure({ wrap, dialect }) : dialect ? htmlLanguage.configure({ dialect }) : htmlLanguage;\n return new LanguageSupport(lang, [\n htmlLanguage.data.of({ autocomplete: htmlCompletionSourceWith(config) }),\n config.autoCloseTags !== false ? autoCloseTags : [],\n javascript().support,\n css().support\n ]);\n}\nconst selfClosers = /*@__PURE__*/new Set(/*@__PURE__*/\"area base br col command embed frame hr img input keygen link meta param source track wbr menuitem\".split(\" \"));\n/**\nExtension that will automatically insert close tags when a `>` or\n`/` is typed.\n*/\nconst autoCloseTags = /*@__PURE__*/EditorView.inputHandler.of((view, from, to, text, insertTransaction) => {\n if (view.composing || view.state.readOnly || from != to || (text != \">\" && text != \"/\") ||\n !htmlLanguage.isActiveAt(view.state, from, -1))\n return false;\n let base = insertTransaction(), { state } = base;\n let closeTags = state.changeByRange(range => {\n var _a, _b, _c;\n let didType = state.doc.sliceString(range.from - 1, range.to) == text;\n let { head } = range, around = syntaxTree(state).resolveInner(head - 1, -1), name;\n if (around.name == \"TagName\" || around.name == \"StartTag\")\n around = around.parent;\n if (didType && text == \">\" && around.name == \"OpenTag\") {\n if (((_b = (_a = around.parent) === null || _a === void 0 ? void 0 : _a.lastChild) === null || _b === void 0 ? void 0 : _b.name) != \"CloseTag\" &&\n (name = elementName(state.doc, around.parent, head)) &&\n !selfClosers.has(name)) {\n let to = head + (state.doc.sliceString(head, head + 1) === \">\" ? 1 : 0);\n let insert = `</${name}>`;\n return { range, changes: { from: head, to, insert } };\n }\n }\n else if (didType && text == \"/\" && around.name == \"IncompleteCloseTag\") {\n let base = around.parent;\n if (around.from == head - 2 && ((_c = base.lastChild) === null || _c === void 0 ? void 0 : _c.name) != \"CloseTag\" &&\n (name = elementName(state.doc, base, head)) && !selfClosers.has(name)) {\n let to = head + (state.doc.sliceString(head, head + 1) === \">\" ? 1 : 0);\n let insert = `${name}>`;\n return {\n range: EditorSelection.cursor(head + insert.length, -1),\n changes: { from: head, to, insert }\n };\n }\n }\n return { range };\n });\n if (closeTags.changes.empty)\n return false;\n view.dispatch([\n base,\n state.update(closeTags, {\n userEvent: \"input.complete\",\n scrollIntoView: true\n })\n ]);\n return true;\n});\n\nexport { autoCloseTags, html, htmlCompletionSource, htmlCompletionSourceWith, htmlLanguage, htmlPlain };\n", "import type { CommandFunction } from '@remirror/core'\nimport { Selection } from '@remirror/pm/state'\n\n/**\n * Handling cursor motion from the outer to the inner editor must be done with a\n * keymap on the outer editor. The `arrowHandler` function uses the\n * `endOfTextblock` method to determine, in a bidi-text-aware way, whether the\n * cursor is at the end of a given textblock. If it is, and the next block is a\n * code block, the selection is moved into it.\n *\n * Adapted from https://prosemirror.net/examples/codemirror/\n */\nexport function arrowHandler(dir: 'left' | 'right' | 'up' | 'down'): CommandFunction {\n return ({ dispatch, view, tr }) => {\n if (!view) {\n return false\n }\n\n if (!(tr.selection.empty && view.endOfTextblock(dir))) {\n return false\n }\n\n const side = dir === 'left' || dir === 'up' ? -1 : 1\n const $head = tr.selection.$head\n const nextPos = Selection.near(tr.doc.resolve(side > 0 ? $head.after() : $head.before()), side)\n\n if (\n nextPos.$head &&\n (nextPos.$head.parent.type.name === 'codeMirror' ||\n nextPos.$head.parent.type.name === 'html_block')\n ) {\n dispatch?.(tr.setSelection(nextPos))\n return true\n }\n\n return false\n }\n}\n", "/* eslint-disable @typescript-eslint/no-shadow */\nimport type {\n ApplySchemaAttributes,\n CommandFunction,\n DelayedPromiseCreator,\n EditorView,\n InputRule,\n NodeExtensionSpec,\n NodeSpecOverride,\n PrimitiveSelection,\n ProsemirrorAttributes,\n} from '@remirror/core'\nimport {\n command,\n ErrorConstant,\n extension,\n ExtensionTag,\n getTextSelection,\n invariant,\n isElementDomNode,\n isNumber,\n NodeExtension,\n nodeInputRule,\n omitExtraAttributes,\n} from '@remirror/core'\nimport type { PasteRule } from '@remirror/pm/paste-rules'\nimport { insertPoint } from '@remirror/pm/transform'\nimport { ExtensionImageTheme } from '@remirror/theme'\nimport type { NodeSerializerOptions } from '@/transform'\nimport { ParserRuleType } from '@/transform'\nimport { buildHtmlStringFromAst, getAttrsBySignalHtmlContent } from '@/utils/html'\nimport type { ComponentType } from 'react'\nimport type { ImageNodeViewProps } from './image-nodeview'\nimport { ImageNodeView } from './image-nodeview'\nimport type { ExtensionsOptions } from '..'\n\ntype DelayedImage = DelayedPromiseCreator<ImageAttributes>\n\nexport interface ImageOptions {\n createPlaceholder?: (view: EditorView, pos: number) => HTMLElement\n updatePlaceholder?: (\n view: EditorView,\n pos: number,\n element: HTMLElement,\n progress: number,\n ) => void\n handleViewImgSrcUrl?: ExtensionsOptions['handleViewImgSrcUrl']\n destroyPlaceholder?: (view: EditorView, element: HTMLElement) => void\n /**\n * The upload handler for the image extension.\n *\n * It receives a list of dropped or pasted files and returns a promise for the\n * attributes which should be used to insert the image into the editor.\n *\n * @param files - a list of files to upload.\n * @param setProgress - the progress handler.\n */\n uploadHandler?: (files: FileWithProgress[]) => DelayedImage[]\n\n /**\n * When pasting mixed text and image content (usually from Microsoft Office products) the content on the clipboard is either:\n *\n * a. one large image: containing effectively a screenshot of the original content (an image with text in it).\n * b. HTML content: containing usable text, but images with file protocol URLs (which cannot be resolved due to browser security restrictions).\n *\n * If true, this will extract the text from the clipboard data, and drop the images.\n * If false, the \"screenshot\" image will be used and the text will be dropped.\n *\n * @defaultValue true\n */\n preferPastedTextContent?: boolean\n}\n\ninterface FileWithProgress {\n file: File\n progress: SetProgress\n}\n\n/**\n * Set the progress.\n *\n * @param progress - a value between `0` and `1`.\n */\ntype SetProgress = (progress: number) => void\n\n/**\n * The image extension for placing images into your editor.\n *\n * TODO ->\n * - Captions https://glitch.com/edit/#!/pet-figcaption?path=index.js%3A27%3A1 into a preset\n *\n * TODO => Split this into an image upload extension and image extension.\n * - Add a base64 image\n */\n@extension<ImageOptions>({\n defaultOptions: {\n createPlaceholder,\n handleViewImgSrcUrl: async (src) => src,\n updatePlaceholder: () => {},\n destroyPlaceholder: () => {},\n uploadHandler,\n preferPastedTextContent: true,\n },\n})\nexport class HtmlImageExtension extends NodeExtension<ImageOptions> {\n get name() {\n return 'html_image' as const\n }\n\n ReactComponent: ComponentType<ImageNodeViewProps> | undefined = (props) => {\n const { handleViewImgSrcUrl } = this.options\n\n return <ImageNodeView handleViewImgSrcUrl={handleViewImgSrcUrl} {...props} />\n }\n\n createTags() {\n return [ExtensionTag.InlineNode, ExtensionTag.Media]\n }\n\n createNodeSpec(extra: ApplySchemaAttributes, override: NodeSpecOverride): NodeExtensionSpec {\n const { preferPastedTextContent } = this.options\n return {\n inline: true,\n selectable: true,\n atom: true,\n ...override,\n attrs: {\n ...extra.defaults(),\n alt: { default: '' },\n crop: { default: null },\n height: { default: null },\n width: { default: null },\n rotate: { default: null },\n src: { default: null },\n title: { default: '' },\n fileName: { default: null },\n },\n parseDOM: [\n {\n tag: 'img[src]',\n getAttrs: (element) => {\n if (isElementDomNode(element)) {\n const attrs = getImageAttributes({ element, parse: extra.parse })\n\n if (preferPastedTextContent && attrs.src?.startsWith('file:///')) {\n return false\n }\n\n return attrs\n }\n\n return {}\n },\n },\n ...(override.parseDOM ?? []),\n ],\n toDOM: (node) => {\n const attrs = omitExtraAttributes(node.attrs, extra)\n return ['img', { ...extra.dom(node), ...attrs }]\n },\n }\n }\n\n @command()\n insertImage(attributes: ImageAttributes, selection?: PrimitiveSelection): CommandFunction {\n return ({ tr, dispatch }) => {\n const { from, to } = getTextSelection(selection ?? tr.selection, tr.doc)\n const node = this.type.create(attributes)\n\n dispatch?.(tr.replaceRangeWith(from, to, node))\n\n return true\n }\n }\n\n /**\n * Insert an image once the provide promise resolves.\n */\n @command()\n uploadImage(\n value: DelayedPromiseCreator<ImageAttributes>,\n onElement?: (element: HTMLElement) => void,\n ): CommandFunction {\n const { updatePlaceholder, destroyPlaceholder, createPlaceholder } = this.options\n return (props) => {\n const { tr } = props\n\n // This is update in the validate hook\n let pos = tr.selection.from\n\n return this.store\n .createPlaceholderCommand({\n promise: value,\n placeholder: {\n type: 'widget',\n get pos() {\n return pos\n },\n createElement: (view, pos) => {\n const element = createPlaceholder(view, pos)\n onElement?.(element)\n return element\n },\n onUpdate: (view, pos, element, data) => {\n updatePlaceholder(view, pos, element, data)\n },\n onDestroy: (view, element) => {\n destroyPlaceholder(view, element)\n },\n },\n onSuccess: (value, range, commandProps) => this.insertImage(value, range)(commandProps),\n })\n .validate(({ tr, dispatch }) => {\n const insertPos = insertPoint(tr.doc, pos, this.type)\n\n if (insertPos == null) {\n return false\n }\n\n pos = insertPos\n\n if (!tr.selection.empty) {\n dispatch?.(tr.deleteSelection())\n }\n\n return true\n }, 'unshift')\n\n .generateCommand()(props)\n }\n }\n\n private fileUploadFileHandler(files: File[], event: ClipboardEvent | DragEvent, pos?: number) {\n const { preferPastedTextContent, uploadHandler } = this.options\n\n if (\n preferPastedTextContent &&\n isClipboardEvent(event) &&\n event.clipboardData?.getData('text/plain')\n ) {\n return false\n }\n\n const { commands, chain } = this.store\n const filesWithProgress: FileWithProgress[] = files.map((file, index) => ({\n file,\n progress: (progress) => {\n commands.updatePlaceholder(uploads[index], progress)\n },\n }))\n\n const uploads = uploadHandler(filesWithProgress)\n\n if (isNumber(pos)) {\n chain.selectText(pos)\n }\n\n for (const upload of uploads) {\n chain.uploadImage(upload)\n }\n\n chain.run()\n\n return true\n }\n\n createPasteRules(): PasteRule[] {\n return [\n {\n type: 'file',\n regexp: /image/i,\n fileHandler: (props): boolean => {\n const pos = props.type === 'drop' ? props.pos : undefined\n return this.fileUploadFileHandler(props.files, props.event, pos)\n },\n },\n ]\n }\n\n createInputRules(): InputRule[] {\n const rules: InputRule[] = [\n nodeInputRule({\n regexp: new RegExp('<img[^>]*>'),\n type: this.type,\n getAttributes: (match) => {\n return getAttrsBySignalHtmlContent(match[0])\n },\n }),\n ]\n\n return rules\n }\n\n public fromMarkdown() {\n return [\n {\n type: ParserRuleType.inline,\n token: 'html_image',\n node: this.name,\n },\n ] as const\n }\n\n public toMarkdown({ state, node }: NodeSerializerOptions) {\n state.text(\n buildHtmlStringFromAst({\n tag: 'img',\n attrs: node.attrs,\n voidElement: true,\n }),\n false,\n )\n }\n}\n\nexport type ImageAttributes = ProsemirrorAttributes<ImageExtensionAttributes>\n\nexport interface ImageExtensionAttributes {\n align?: 'center' | 'end' | 'justify' | 'left' | 'match-parent' | 'right' | 'start'\n alt?: string\n height?: string | number\n width?: string | number\n rotate?: string\n src: string\n title?: string\n\n /** The file name used to create the image. */\n fileName?: string\n}\n\n/**\n * The set of valid image files.\n */\nconst IMAGE_FILE_TYPES = new Set([\n 'image/jpeg',\n 'image/gif',\n 'image/png',\n 'image/jpg',\n 'image/svg',\n 'image/webp',\n])\n\n/**\n * True when the provided file is an image file.\n */\nexport function isImageFileType(file: File): boolean {\n return IMAGE_FILE_TYPES.has(file.type)\n}\n\n/**\n * Get the width and the height of the image.\n */\nfunction getDimensions(element: HTMLElement) {\n let { width, height } = element.style\n width = width || element.getAttribute('width') || ''\n height = height || element.getAttribute('height') || ''\n\n return { width, height }\n}\n\n/**\n * Retrieve attributes from the dom for the image extension.\n */\nfunction getImageAttributes({\n element,\n parse,\n}: {\n element: HTMLElement\n parse: ApplySchemaAttributes['parse']\n}) {\n const { width, height } = getDimensions(element)\n\n return {\n ...parse(element),\n alt: element.getAttribute('alt') ?? '',\n height: Number.parseInt(height || '0', 10) || null,\n src: element.getAttribute('src') ?? null,\n title: element.getAttribute('title') ?? '',\n width: Number.parseInt(width || '0', 10) || null,\n fileName: element.getAttribute('data-file-name') ?? null,\n }\n}\n\nfunction createPlaceholder(): HTMLElement {\n const element = document.createElement('div')\n element.classList.add(ExtensionImageTheme.IMAGE_LOADER)\n\n return element\n}\n\n/**\n * The default handler converts the files into their `base64` representations\n * and adds the attributes before inserting them into the editor.\n */\nfunction uploadHandler(files: FileWithProgress[]): DelayedImage[] {\n invariant(files.length > 0, {\n code: ErrorConstant.EXTENSION,\n message: 'The upload handler was applied for the image extension without any valid files',\n })\n\n let completed = 0\n const promises: DelayedPromiseCreator<ImageAttributes>[] = []\n\n for (const { file, progress } of files) {\n promises.push(\n // eslint-disable-next-line @typescript-eslint/no-loop-func\n () =>\n new Promise<ImageAttributes>((resolve) => {\n const reader = new FileReader()\n\n reader.addEventListener(\n 'load',\n (readerEvent) => {\n completed += 1\n progress(completed / files.length)\n resolve({ src: readerEvent.target?.result as string, fileName: file.name })\n },\n { once: true },\n )\n\n reader.readAsDataURL(file)\n }),\n )\n }\n\n return promises\n}\n\nfunction isClipboardEvent(event: ClipboardEvent | DragEvent): event is ClipboardEvent {\n return (event as ClipboardEvent).clipboardData !== undefined\n}\n", "import type { NodeViewComponentProps } from '@remirror/react'\nimport { Image, Popover } from '@markflowy/components'\nimport { ImageToolTips } from './image-tool-tips'\nimport { Resizable } from '@/components/Resizable'\nimport { useEffect, useRef, useState } from 'react'\nimport type { ExtensionsOptions } from '..'\n\nexport interface ImageNodeViewProps extends NodeViewComponentProps {\n handleViewImgSrcUrl?: ExtensionsOptions['handleViewImgSrcUrl']\n}\nexport function ImageNodeView(props: ImageNodeViewProps) {\n const { node, selected, updateAttributes, handleViewImgSrcUrl } = props\n const [src, setSrc] = useState<string>('')\n const initRef = useRef<() => void>()\n\n useEffect(() => {\n if (handleViewImgSrcUrl) {\n handleViewImgSrcUrl(node.attrs.src).then((newSrc) => {\n setSrc(newSrc)\n })\n } else {\n setSrc(node.attrs.src)\n }\n }, [handleViewImgSrcUrl, node.attrs.src])\n\n return (\n <Popover\n customContent={<ImageToolTips node={node} updateAttributes={updateAttributes} />}\n placement='top-start'\n open={selected}\n arrow={false}\n >\n <Resizable controlInit={(init) => (initRef.current = init)} {...props}>\n {src ? (\n <Image\n fallback='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAAAAACIM/FCAAAChElEQVR4Ae3aMW/TQBxAcb70k91AAiGuGlZAtOlQApWaDiSdklZq2RPUTm1xUWL3PgqSpygkXlh88N54nn7S2Trd3y/CP5IQIUKECBEiRIgQIUKECBEiRIgQIUKECBEiRIgQIUKECBEiRIgQIUKECBEiRIgQIUKECBEiRIgQIUKECPmPIEKECBEiRIgQIeX82+FBO0naB4eTRRkt5P7sNWt1Rw9RQvKThI2SYR4f5OoVW2rfRAYpT6hqHc8WeVHki9mgRdWwiAmyfA9AdrlaW5tlAHxcxQMpK8feRbGxPEkrSREN5ARg/y780V0GMIwFcgXwLg9byvsAN3FA8lfAfr7jYQZ0nqKAfAb21vYVwNruSoEvMUDuE+Ai7IKECZA+RAA5A7JiN6TMgFHzIeUb4DLshoQZ0H1uPGQOvFzVQZYtYNF4yBg4DnWQMAAmjYccArN6yBQ4ajzkAFjUQ+ZAv/GQNpDXQ3Kg03hIAhT1kAJIhLi1/vJl39Ic6Mf3+a2K8PM7BgahtgEwjuKI0lqGjSI8opRdYFb3sk/jODSGEZCVuyFFDzgPzYc8JMBkN2QMpI8RQMIQ2LvdBblNgdM4Lh/aQJaHrf3sAe2nKCDhGqCfb3VEcx1UNQTItlzQ3fYAvoZYIMUHgHRSbiyPU4BPZUSX2JWEbLZcW5v2qByrmMYKxZCq1mA6z4sin08HLapOy8gGPddtttT5HuHobZiwUXr6K85h6KjLWm/PH+MdTy/GR/12knb6g8mPZ38YECJEiBAhQoQIESJEiBAhQoQIESJEiBAhQoQIESJEiBAhQoQIESJEiBAhQoQIESJEiBAhQoQIESJEiBAhQoQIESJEiBAh0fUb5q7oCGreEVEAAAAASUVORK5CYII='\n onLoad={() => initRef.current?.()}\n {...node.attrs}\n src={src}\n />\n ) : null}\n </Resizable>\n </Popover>\n )\n}\n", "import { useState, type FC } from 'react'\nimport { Input, Space, Tooltip } from '@markflowy/components'\nimport type { NodeViewComponentProps } from '@remirror/react'\n\ninterface ImageToolTipsProps {\n node: NodeViewComponentProps['node']\n updateAttributes?: NodeViewComponentProps['updateAttributes']\n}\n\nexport const ImageToolTips: FC<ImageToolTipsProps> = (props) => {\n const { node } = props\n const { src } = node.attrs\n const [srcVal, setSrcVal] = useState(src)\n\n const handleSrcInput: React.FormEventHandler<HTMLInputElement> = (e) => {\n setSrcVal(e.currentTarget.value)\n }\n\n const updateSrc = () => {\n if (props.updateAttributes) {\n props.updateAttributes({ ...node.attrs, src: srcVal })\n }\n }\n\n return (\n <Space>\n <Tooltip title='Image URL [Enter]' placement='top'>\n <Input\n placeholder='Image URL'\n value={srcVal}\n style={{ fontSize: '14px' }}\n onInput={handleSrcInput}\n onPressEnter={updateSrc}\n />\n </Tooltip>\n </Space>\n )\n}\n", "import styled from 'styled-components'\nimport { useRef, type FC, useEffect, useCallback, memo, useState } from 'react'\nimport { throttle } from '@remirror/core-helpers'\nimport type { NodeViewComponentProps } from '@remirror/react'\nimport { ResizableHandle, ResizableHandleType } from './ResizableHandle'\n\nexport enum ResizableRatioType {\n Fixed,\n Flexible,\n}\n\nconst ResizableContainer = styled.div`\n display: inline-block;\n position: relative;\n max-width: 100%;\n line-height: 0;\n user-select: none;\n border-radius: 2px;\n transition: all 0.15s ease-out;\n`\n\ninterface ResizableProps extends BaseComponentProps, NodeViewComponentProps {\n aspectRatio?: ResizableRatioType\n defaultSize?: { width: number; height: number }\n controlInit?: (init: () => void) => void\n onResize?: (e: React.MouseEvent<Element, MouseEvent>, handleType: ResizableHandleType) => void\n}\n\nconst MIN_WIDTH = 20\n\nexport const Resizable: FC<ResizableProps> = memo((props) => {\n const {\n node,\n aspectRatio = ResizableRatioType.Fixed,\n updateAttributes,\n selected,\n controlInit,\n } = props\n\n const [size, setSize] = useState<{ width?: number; height?: number }>({})\n const [inNode, setInNode] = useState(false)\n const [hasChanged, setHasChanged] = useState(false)\n const destoryList = useRef<(() => void)[]>([])\n const containerRef = useRef<HTMLDivElement>(null)\n const startWidthRef = useRef(0)\n const startHeightRef = useRef(0)\n\n const startResizing = useCallback(\n (e: React.MouseEvent<Element, MouseEvent>, handleType: ResizableHandleType) => {\n e.preventDefault()\n\n const startX = e.pageX\n const startY = e.pageY\n const startWidth = startWidthRef.current || 0\n const startHeight = startHeightRef.current || 0\n\n const onMouseMove = throttle(100, false, (event: any) => {\n const currentX = event.pageX\n const currentY = event.pageY\n const diffX = currentX - startX\n const diffY = currentY - startY\n let newWidth: number | null = null\n let newHeight: number | null = null\n\n if (aspectRatio === ResizableRatioType.Fixed && startWidth && startHeight) {\n switch (handleType) {\n case ResizableHandleType.Right:\n case ResizableHandleType.TopRight:\n case ResizableHandleType.BottomRight:\n newWidth = startWidth + diffX\n newHeight = (startHeight / startWidth) * newWidth!\n break\n case ResizableHandleType.Left:\n case ResizableHandleType.TopLeft:\n case ResizableHandleType.BottomLeft:\n newWidth = startWidth - diffX\n newHeight = (startHeight / startWidth) * newWidth\n break\n case ResizableHandleType.Bottom:\n newHeight = startHeight + diffY\n newWidth = (startWidth / startHeight) * newHeight!\n break\n case ResizableHandleType.Top:\n newHeight = startHeight - diffY\n newWidth = (startWidth / startHeight) * newHeight!\n break\n }\n } else if (aspectRatio === ResizableRatioType.Flexible) {\n switch (handleType) {\n case ResizableHandleType.Right:\n newWidth = startWidth + diffX\n break\n case ResizableHandleType.Left:\n newWidth = startWidth - diffX\n break\n case ResizableHandleType.Bottom:\n newHeight = startHeight + diffY\n break\n case ResizableHandleType.Top:\n newHeight = startHeight - diffY\n break\n case ResizableHandleType.BottomRight:\n case ResizableHandleType.TopRight:\n newWidth = startWidth + diffX\n newHeight = startHeight + diffY\n break\n case ResizableHandleType.BottomLeft:\n case ResizableHandleType.TopLeft:\n newWidth = startWidth - diffX\n newHeight = startHeight + diffY\n break\n }\n }\n\n if (typeof newWidth === 'number' && newWidth < MIN_WIDTH) {\n if (aspectRatio === ResizableRatioType.Fixed && startWidth && startHeight) {\n newWidth = MIN_WIDTH\n newHeight = (startHeight / startWidth) * newWidth\n } else if (aspectRatio === ResizableRatioType.Flexible) {\n newWidth = MIN_WIDTH\n }\n }\n\n if (newWidth && containerRef.current) {\n setSize((prev) => ({ ...prev, width: Math.round(newWidth!) }))\n }\n\n if (newHeight) {\n setSize((prev) => ({ ...prev, height: Math.round(newHeight!) }))\n }\n })\n\n const onMouseUp = (event: any) => {\n event.preventDefault()\n\n document.removeEventListener('mousemove', onMouseMove)\n document.removeEventListener('mouseup', onMouseUp)\n\n if (containerRef.current) {\n const { width, height } = containerRef.current.getBoundingClientRect()\n startWidthRef.current = width\n startHeightRef.current = height\n setSize({ width, height })\n\n updateAttributes({\n ...node.attrs,\n width: startWidthRef.current,\n height: startHeightRef.current,\n })\n }\n }\n\n document.addEventListener('mousemove', onMouseMove)\n document.addEventListener('mouseup', onMouseUp)\n\n destoryList.current.push(() => document.removeEventListener('mousemove', onMouseMove))\n destoryList.current.push(() => document.removeEventListener('mouseup', onMouseUp))\n },\n [aspectRatio, node.attrs, updateAttributes],\n )\n\n const handleResizing = useCallback(\n (e: React.MouseEvent, handleType: ResizableHandleType) => {\n startResizing(e, handleType)\n },\n [startResizing],\n )\n\n useEffect(() => {\n const init = () => {\n if (containerRef.current) {\n const { width, height } = containerRef.current.getBoundingClientRect()\n startWidthRef.current = width\n startHeightRef.current = height\n setHasChanged(true)\n setSize({ width, height })\n }\n }\n\n if (controlInit) {\n controlInit(init)\n } else {\n init()\n }\n\n return () => {\n destoryList.current.forEach((destory) => destory())\n destoryList.current = []\n }\n }, [controlInit])\n\n const handleVisible = selected || inNode\n\n return (\n <ResizableContainer\n ref={containerRef}\n style={\n hasChanged\n ? {\n width: `${size.width}px`,\n height: `${size.height}px`,\n aspectRatio: `${size.width} / ${size.height}`,\n }\n : undefined\n }\n onMouseOver={() => setInNode(true)}\n onMouseOut={() => setInNode(false)}\n >\n <ResizableHandle\n visible={handleVisible}\n onResizing={handleResizing}\n handleType={ResizableHandleType.Top}\n />\n <ResizableHandle\n visible={handleVisible}\n onResizing={handleResizing}\n handleType={ResizableHandleType.Bottom}\n />\n <ResizableHandle\n visible={handleVisible}\n onResizing={handleResizing}\n handleType={ResizableHandleType.Left}\n />\n <ResizableHandle\n visible={handleVisible}\n onResizing={handleResizing}\n handleType={ResizableHandleType.Right}\n />\n {props.children}\n </ResizableContainer>\n )\n})\n", "// packages/remirror__core-helpers/src/core-errors.ts\nimport { BaseError as BaseError2 } from \"make-error\";\nimport { ErrorConstant } from \"@remirror/core-constants\";\n\n// packages/remirror__core-helpers/src/core-helpers.ts\nimport deepmerge from \"deepmerge\";\nimport fastDeepEqual from \"fast-deep-equal\";\nimport { BaseError } from \"make-error\";\nimport omit from \"object.omit\";\nimport pick from \"object.pick\";\nimport {\n camelCase,\n capitalCase,\n constantCase,\n kebabCase,\n pascalCase,\n pathCase,\n snakeCase,\n spaceCase\n} from \"case-anything\";\nimport { debounce, throttle } from \"throttle-debounce\";\nfunction Cast(value) {\n return value;\n}\nfunction assertGet(value, key, message) {\n const prop = value[key];\n assert(!isUndefined(prop), message);\n return prop;\n}\nfunction assert(testValue, message) {\n if (!testValue) {\n throw new AssertionError(message);\n }\n}\nvar AssertionError = class extends BaseError {\n constructor() {\n super(...arguments);\n this.name = \"AssertionError\";\n }\n};\nfunction entries(value) {\n return Object.entries(value);\n}\nfunction keys(value) {\n return Object.keys(value);\n}\nfunction values(value) {\n return Object.values(value);\n}\nfunction includes(array, item, fromIndex) {\n return array.includes(item, fromIndex);\n}\nfunction object(value) {\n return Object.assign(/* @__PURE__ */ Object.create(null), value);\n}\nfunction toString(value) {\n return Object.prototype.toString.call(value);\n}\nfunction getObjectType(value) {\n const objectName = toString(value).slice(8, -1);\n return objectName;\n}\nfunction isOfType(type, predicate) {\n return (value) => {\n if (typeof value !== type) {\n return false;\n }\n return predicate ? predicate(value) : true;\n };\n}\nfunction isObjectOfType(type) {\n return (value) => getObjectType(value) === type;\n}\nfunction isDirectInstanceOf(instance, Constructor) {\n return Object.getPrototypeOf(instance) === Constructor.prototype;\n}\nvar isUndefined = isOfType(\"undefined\");\nvar isString = isOfType(\"string\");\nvar isNumber = isOfType(\"number\", (value) => !Number.isNaN(value));\nvar isFunction = isOfType(\"function\");\nfunction isNull(value) {\n return value === null;\n}\nfunction isClass(value) {\n return isFunction(value) && value.toString().startsWith(\"class \");\n}\nfunction isBoolean(value) {\n return value === true || value === false;\n}\nvar isSymbol = isOfType(\"symbol\");\nfunction isInteger(value) {\n return Number.isInteger(value);\n}\nfunction isSafeInteger(value) {\n return Number.isSafeInteger(value);\n}\nfunction isPlainObject(value) {\n if (getObjectType(value) !== \"Object\" /* Object */) {\n return false;\n }\n const prototype = Object.getPrototypeOf(value);\n return prototype === null || prototype === Object.getPrototypeOf({});\n}\nfunction isPrimitive(value) {\n return value == null || /^[bns]/.test(typeof value);\n}\nfunction isJSONPrimitive(value) {\n return value === null || [\"boolean\", \"number\", \"string\"].includes(typeof value);\n}\nfunction isNullOrUndefined(value) {\n return isNull(value) || isUndefined(value);\n}\nfunction isObject(value) {\n return !isNullOrUndefined(value) && (isFunction(value) || isOfType(\"object\")(value));\n}\nfunction isInstanceOf(Constructor) {\n return (value) => isObject(value) && value instanceof Constructor;\n}\nfunction isNativePromise(value) {\n return isObjectOfType(\"Promise\" /* Promise */)(value);\n}\nvar hasPromiseAPI = (value) => !!(!isNull(value) && isObject(value) && isFunction(value.then) && isFunction(value.catch));\nfunction isPromise(value) {\n return isNativePromise(value) || hasPromiseAPI(value);\n}\nvar isRegExp = isObjectOfType(\"RegExp\" /* RegExp */);\nvar isDate = isObjectOfType(\"Date\" /* Date */);\nvar isError = isObjectOfType(\"Error\" /* Error */);\nfunction isMap(value) {\n return isObjectOfType(\"Map\" /* Map */)(value);\n}\nfunction isSet(value) {\n return isObjectOfType(\"Set\" /* Set */)(value);\n}\nfunction isEmptyObject(value) {\n return isObject(value) && !isMap(value) && !isSet(value) && Object.keys(value).length === 0;\n}\nvar isArray = Array.isArray;\nfunction isEmptyArray(value) {\n return isArray(value) && value.length === 0;\n}\nfunction isNonEmptyArray(value) {\n return isArray(value) && value.length > 0;\n}\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\nfunction format(value) {\n value = value.trim();\n return /^(?:webOS|i(?:OS|P))/.test(value) ? value : capitalize(value);\n}\nfunction callIfDefined(fn, ...args) {\n if (isFunction(fn)) {\n fn(...args);\n }\n}\nfunction findMatches(text, regexp, runWhile = (match) => !!match) {\n regexp.lastIndex = 0;\n const results = [];\n const flags = regexp.flags;\n let match;\n if (!flags.includes(\"g\")) {\n regexp = new RegExp(regexp.source, `g${flags}`);\n }\n do {\n match = regexp.exec(text);\n if (match) {\n results.push(match);\n }\n } while (runWhile(match));\n regexp.lastIndex = 0;\n return results;\n}\nfunction cleanupOS(os, pattern, label) {\n if (pattern && label) {\n os = os.replace(new RegExp(pattern, \"i\"), label);\n }\n return format(\n os.replace(/ ce$/i, \" CE\").replace(/\\bhpw/i, \"web\").replace(/\\bMacintosh\\b/, \"Mac OS\").replace(/_powerpc\\b/i, \" OS\").replace(/\\b(os x) [^\\d ]+/i, \"$1\").replace(/\\bMac (OS X)\\b/, \"$1\").replace(/\\/(\\d)/, \" $1\").replace(/_/g, \".\").replace(/(?: bepc|[ .]*fc[\\d .]+)$/i, \"\").replace(/\\bx86\\.64\\b/gi, \"x86_64\").replace(/\\b(Windows Phone) OS\\b/, \"$1\").replace(/\\b(Chrome OS \\w+) [\\d.]+\\b/, \"$1\").split(\" on \")[0] ?? \"\"\n );\n}\nfunction isAndroidOS() {\n const ua = navigator.userAgent;\n const match = new RegExp(\"\\\\bAndroid(?:/[\\\\d.]+|[ \\\\w.]*)\", \"i\").exec(ua);\n if (!match) {\n return false;\n }\n return cleanupOS(match[0] ?? \"\", \"Android\", \"Android\").includes(\"Android\");\n}\nfunction randomFloat(min, max) {\n if (!max) {\n max = min;\n min = 0;\n }\n return Math.random() * (max - min + 1) + min;\n}\nfunction randomInt(min, max) {\n return Math.floor(randomFloat(min, max));\n}\nfunction startCase(string) {\n return string.replace(/_/g, \" \").replace(/([a-z])([A-Z])/g, (_, $1, $2) => `${$1} ${$2}`).replace(/(\\s|^)(\\w)/g, (_, $1, $2) => `${$1}${$2.toUpperCase()}`);\n}\nfunction n() {\n const time = Date.now();\n const last2 = n.last || time;\n return n.last = time > last2 ? time : last2 + 1;\n}\nn.last = 0;\nfunction uniqueId(prefix = \"\") {\n return `${prefix}${n().toString(36)}`;\n}\nfunction take(array, number) {\n number = Math.max(Math.min(0, number), number);\n return array.slice(0, number);\n}\nfunction omitUndefined(object2) {\n return omit(object2, (value) => !isUndefined(value));\n}\nfunction clone(value) {\n if (!isPlainObject(value)) {\n throw new Error(\"An invalid value was passed into this clone utility. Expected a plain object\");\n }\n return { ...value };\n}\nfunction shallowClone(value) {\n const clone2 = Object.create(Object.getPrototypeOf(value));\n const descriptors = Object.getOwnPropertyDescriptors(value);\n Object.defineProperties(clone2, descriptors);\n return clone2;\n}\nvar isEqual = fastDeepEqual;\nfunction uniqueArray(array, fromStart = false) {\n const array_ = fromStart ? [...array].reverse() : array;\n const set2 = new Set(array_);\n return fromStart ? [...set2].reverse() : [...set2];\n}\nfunction flattenArray(array) {\n const flattened = [];\n for (const item of array) {\n const itemsToInsert = isArray(item) ? flattenArray(item) : [item];\n flattened.push(...itemsToInsert);\n }\n return flattened;\n}\nfunction noop() {\n return;\n}\nfunction deepMerge(...objects) {\n return deepmerge.all(objects, { isMergeableObject: isPlainObject });\n}\nfunction clamp({ min, max, value }) {\n if (value < min) {\n return min;\n }\n return value > max ? max : value;\n}\nfunction last(array) {\n return array[array.length - 1];\n}\nfunction sort(array, compareFn) {\n return [...array].map((value, index) => ({ value, index })).sort((a, z) => compareFn(a.value, z.value) || a.index - z.index).map(({ value }) => value);\n}\nfunction get(root, path, defaultValue) {\n try {\n if (isString(path) && path in root) {\n return root[path];\n }\n if (isArray(path)) {\n path = `['${path.join(\"']['\")}']`;\n }\n let obj = root;\n path.replace(\n /\\[\\s*([\"'])(.*?)\\1\\s*]|^\\s*(\\w+)\\s*(?=\\.|\\[|$)|\\.\\s*(\\w*)\\s*(?=\\.|\\[|$)|\\[\\s*(-?\\d+)\\s*]/g,\n (_, __, quotedProp, firstLevel, namedProp, index) => {\n obj = obj[quotedProp || firstLevel || namedProp || index];\n return \"\";\n }\n );\n return obj === void 0 ? defaultValue : obj;\n } catch {\n return defaultValue;\n }\n}\nfunction setPropInternal(path, obj, value, index) {\n if (path.length === index) {\n return value;\n }\n obj = obj || {};\n const key = path[index];\n assert(key);\n return setClone(obj, key, setPropInternal(path, obj[key], value, ++index));\n}\nfunction setClone(obj, key, value) {\n const newObj = clone(obj);\n newObj[key] = value;\n return newObj;\n}\nfunction set(path, obj, value) {\n if (isNumber(path)) {\n return setClone(obj, path, value);\n }\n if (isString(path)) {\n path = path.split(\".\");\n }\n return setPropInternal(path, obj, value, 0);\n}\nfunction unset(path, target) {\n const clonedObject = clone(target);\n let value = clonedObject;\n for (const [index, key] of path.entries()) {\n const shouldDelete = index >= path.length - 1;\n let item = value[key];\n if (shouldDelete) {\n if (isArray(value)) {\n const indexKey = Number.parseInt(key.toString(), 10);\n if (isNumber(indexKey)) {\n value.splice(indexKey, 1);\n }\n } else {\n Reflect.deleteProperty(value, key);\n }\n return clonedObject;\n }\n if (isPrimitive(item)) {\n return clonedObject;\n }\n item = isArray(item) ? [...item] : { ...item };\n value[key] = item;\n value = item;\n }\n return clonedObject;\n}\nfunction makeFunctionForUniqueBy(value) {\n return (item) => get(item, value);\n}\nfunction uniqueBy(array, getValue, fromStart = false) {\n const unique = [];\n const found = /* @__PURE__ */ new Set();\n const getter = isFunction(getValue) ? getValue : makeFunctionForUniqueBy(getValue);\n const list = fromStart ? [...array].reverse() : array;\n for (const item of list) {\n const value = getter(item);\n if (!found.has(value)) {\n found.add(value);\n unique.push(item);\n }\n }\n return fromStart ? unique.reverse() : unique;\n}\nfunction range(start, end) {\n const startValue = isArray(start) ? start[0] : start;\n if (!isNumber(end)) {\n return Array.from(\n { length: Math.abs(startValue) },\n (_, index) => (startValue < 0 ? -1 : 1) * index\n );\n }\n if (startValue <= end) {\n return Array.from({ length: end + 1 - startValue }, (_, index) => index + startValue);\n }\n return Array.from({ length: startValue + 1 - end }, (_, index) => -1 * index + startValue);\n}\nfunction within(value, ...rest) {\n const numbers = rest.filter(isNumber);\n return value >= Math.min(...numbers) && value <= Math.max(...numbers);\n}\nfunction hasOwnProperty(object_, key) {\n return Object.prototype.hasOwnProperty.call(object_, key);\n}\nfunction getLazyArray(value) {\n if (isFunction(value)) {\n return value();\n }\n return value;\n}\n\n// packages/remirror__core-helpers/src/core-errors.ts\nvar ERROR_INFORMATION_URL = \"https://remirror.io/docs/errors\";\nvar errorMessageMap = {\n [ErrorConstant.UNKNOWN]: \"An error occurred but we're not quite sure why. \\u{1F9D0}\",\n [ErrorConstant.INVALID_COMMAND_ARGUMENTS]: \"The arguments passed to the command method were invalid.\",\n [ErrorConstant.CUSTOM]: \"This is a custom error, possibly thrown by an external library.\",\n [ErrorConstant.CORE_HELPERS]: \"An error occurred in a function called from the `@remirror/core-helpers` library.\",\n [ErrorConstant.MUTATION]: \"Mutation of immutable value detected.\",\n [ErrorConstant.INTERNAL]: \"This is an error which should not occur and is internal to the remirror codebase.\",\n [ErrorConstant.MISSING_REQUIRED_EXTENSION]: \"Your editor is missing a required extension.\",\n [ErrorConstant.MANAGER_PHASE_ERROR]: \"This occurs when accessing a method or property before it is available.\",\n [ErrorConstant.INVALID_GET_EXTENSION]: \"The user requested an invalid extension from the getExtensions method. Please check the `createExtensions` return method is returning an extension with the defined constructor.\",\n [ErrorConstant.INVALID_MANAGER_ARGUMENTS]: \"Invalid value(s) passed into `Manager` constructor. Only `Presets` and `Extensions` are supported.\",\n [ErrorConstant.SCHEMA]: \"There is a problem with the schema or you are trying to access a node / mark that doesn't exists.\",\n [ErrorConstant.HELPERS_CALLED_IN_OUTER_SCOPE]: \"The `helpers` method which is passed into the ``create*` method should only be called within returned method since it relies on an active view (not present in the outer scope).\",\n [ErrorConstant.INVALID_MANAGER_EXTENSION]: \"You requested an invalid extension from the manager.\",\n [ErrorConstant.DUPLICATE_COMMAND_NAMES]: \"Command method names must be unique within the editor.\",\n [ErrorConstant.DUPLICATE_HELPER_NAMES]: \"Helper method names must be unique within the editor.\",\n [ErrorConstant.NON_CHAINABLE_COMMAND]: \"Attempted to chain a non chainable command.\",\n [ErrorConstant.INVALID_EXTENSION]: \"The provided extension is invalid.\",\n [ErrorConstant.INVALID_CONTENT]: \"The content provided to the editor is not supported.\",\n [ErrorConstant.INVALID_NAME]: \"An invalid name was used for the extension.\",\n [ErrorConstant.EXTENSION]: \"An error occurred within an extension. More details should be made available.\",\n [ErrorConstant.EXTENSION_SPEC]: \"The spec was defined without calling the `defaults`, `parse` or `dom` methods.\",\n [ErrorConstant.EXTENSION_EXTRA_ATTRIBUTES]: \"Extra attributes must either be a string or an object.\",\n [ErrorConstant.INVALID_SET_EXTENSION_OPTIONS]: \"A call to `extension.setOptions` was made with invalid keys.\",\n [ErrorConstant.REACT_PROVIDER_CONTEXT]: \"`useRemirrorContext` was called outside of the `remirror` context. It can only be used within an active remirror context created by the `<Remirror />`.\",\n [ErrorConstant.REACT_GET_ROOT_PROPS]: \"`getRootProps` has been attached to the DOM more than once. It should only be attached to the dom once per editor.\",\n [ErrorConstant.REACT_EDITOR_VIEW]: \"A problem occurred adding the editor view to the dom.\",\n [ErrorConstant.REACT_CONTROLLED]: \"There is a problem with your controlled editor setup.\",\n [ErrorConstant.REACT_NODE_VIEW]: \"Something went wrong with your custom ReactNodeView Component.\",\n [ErrorConstant.REACT_GET_CONTEXT]: \"You attempted to call `getContext` provided by the `useRemirror` prop during the first render of the editor. This is not possible and should only be after the editor first mounts.\",\n [ErrorConstant.REACT_COMPONENTS]: \"An error occurred within a remirror component.\",\n [ErrorConstant.REACT_HOOKS]: \"An error occurred within a remirror hook.\",\n [ErrorConstant.I18N_CONTEXT]: \"You called `useI18n()` outside of an `I18nProvider` context.\"\n};\nfunction isErrorConstant(code) {\n return isString(code) && includes(values(ErrorConstant), code);\n}\nfunction createErrorMessage(code, extraMessage) {\n const message = errorMessageMap[code];\n const prefix = message ? `${message}\n\n` : \"\";\n const customMessage = extraMessage ? `${extraMessage}\n\n` : \"\";\n return `${prefix}${customMessage}For more information visit ${ERROR_INFORMATION_URL}#${code.toLowerCase()}`;\n}\nvar RemirrorError = class extends BaseError2 {\n /**\n * The constructor is intentionally kept private to prevent being extended from.\n */\n constructor({ code, message, disableLogging = false } = {}) {\n const errorCode = isErrorConstant(code) ? code : ErrorConstant.CUSTOM;\n super(createErrorMessage(errorCode, message));\n this.errorCode = errorCode;\n this.url = `${ERROR_INFORMATION_URL}#${errorCode.toLowerCase()}`;\n if (!disableLogging) {\n console.error(this.message);\n }\n }\n /**\n * A shorthand way of creating an error message.\n */\n static create(options = {}) {\n return new RemirrorError(options);\n }\n};\nfunction invariant(condition, options) {\n if (condition) {\n return;\n }\n throw RemirrorError.create(options);\n}\n\n// packages/remirror__core-helpers/src/default-import.ts\nfunction defaultImport(mod) {\n if (typeof mod !== \"object\" || mod === null) {\n return mod;\n }\n const defaultVal = Symbol.toStringTag in mod && mod[Symbol.toStringTag] === \"Module\" ? mod.default ?? mod : mod;\n if (defaultVal && typeof mod === \"object\" && \"__esModule\" in defaultVal && defaultVal.__esModule && defaultVal.default !== void 0) {\n return defaultVal.default;\n }\n return defaultVal;\n}\n\n// packages/remirror__core-helpers/src/freeze.ts\nimport { ErrorConstant as ErrorConstant2 } from \"@remirror/core-constants\";\nfunction freeze(target, options = {}) {\n if (process.env.NODE_ENV === \"production\") {\n return target;\n }\n invariant(isObject(target) || isArray(target), {\n message: \"`freeze` only supports objects and arrays.\",\n code: ErrorConstant2.CORE_HELPERS\n });\n return new Proxy(target, {\n get: (target2, prop, receiver) => {\n invariant(prop in target2 || !options.requireKeys, {\n message: `The prop: '${prop.toString()}' you are trying to access does not yet exist on the target.`\n });\n return Reflect.get(target2, prop, receiver);\n },\n set: (_, prop) => {\n invariant(false, {\n message: `It seems you're trying to set the value of the property (${String(\n prop\n )}) on a frozen object. For your protection this object does not allow direct mutation.`,\n code: ErrorConstant2.MUTATION\n });\n }\n });\n}\nexport {\n Cast,\n RemirrorError,\n assert,\n assertGet,\n callIfDefined,\n camelCase,\n capitalCase,\n capitalize,\n clamp,\n cleanupOS,\n clone,\n constantCase,\n debounce,\n deepMerge,\n defaultImport,\n entries,\n findMatches,\n flattenArray,\n format,\n freeze,\n get,\n getLazyArray,\n hasOwnProperty,\n includes,\n invariant,\n isAndroidOS,\n isArray,\n isBoolean,\n isClass,\n isDate,\n isDirectInstanceOf,\n isEmptyArray,\n isEmptyObject,\n isEqual,\n isError,\n isFunction,\n isInstanceOf,\n isInteger,\n isJSONPrimitive,\n isMap,\n isNativePromise,\n isNonEmptyArray,\n isNull,\n isNullOrUndefined,\n isNumber,\n isObject,\n isPlainObject,\n isPrimitive,\n isPromise,\n isRegExp,\n isSafeInteger,\n isSet,\n isString,\n isSymbol,\n isUndefined,\n kebabCase,\n keys,\n last,\n noop,\n object,\n omit,\n omitUndefined,\n pascalCase,\n pathCase,\n pick,\n randomFloat,\n randomInt,\n range,\n set,\n shallowClone,\n snakeCase,\n sort,\n spaceCase,\n startCase,\n take,\n throttle,\n toString,\n uniqueArray,\n uniqueBy,\n uniqueId,\n unset,\n values,\n within\n};\n", "// packages/remirror__core-constants/src/core-constants.ts\nvar SELECTED_NODE_CLASS_NAME = \"ProseMirror-selectednode\";\nvar SELECTED_NODE_CLASS_SELECTOR = `.${SELECTED_NODE_CLASS_NAME}`;\nvar LEAF_NODE_REPLACING_CHARACTER = \"\\uFFFC\";\nvar NULL_CHARACTER = \"\\0\";\nvar STATE_OVERRIDE = \"__state_override__\";\nvar REMIRROR_WEBVIEW_NAME = \"$$__REMIRROR_WEBVIEW_BUNDLE__$$\";\nvar ZERO_WIDTH_SPACE_CHAR = \"\\u200B\";\nvar NON_BREAKING_SPACE_CHAR = \"\\xA0\";\nvar EMPTY_PARAGRAPH_NODE = {\n type: \"doc\",\n content: [\n {\n type: \"paragraph\"\n }\n ]\n};\nvar EMPTY_NODE = {\n type: \"doc\",\n content: []\n};\nfunction mutateTag(mutator) {\n mutator(BaseExtensionTag);\n}\nvar BaseExtensionTag = {\n /**\n * Describes a node that can be used as the last node of a document and\n * doesn't need to have anything else rendered after itself.\n *\n * @remarks\n *\n * e.g. `paragraph`\n */\n LastNodeCompatible: \"lastNodeCompatible\",\n /**\n * A mark that is used to change the formatting of the node it wraps.\n *\n * @remarks\n *\n * e.g. `bold`, `italic`\n */\n FormattingMark: \"formattingMark\",\n /**\n * A node that formats text in a non-standard way.\n *\n * @remarks\n *\n * e.g. `codeBlock`, `heading`, `blockquote`\n */\n FormattingNode: \"formattingNode\",\n /**\n * Identifies a node which has problems with cursor navigation.\n *\n * @remarks\n *\n * When this tag is added to an extension this will be picked up by\n * behavioural extensions such as the NodeCursorExtension which makes hard to\n * reach nodes reachable using keyboard arrows.\n */\n NodeCursor: \"nodeCursor\",\n /**\n * Mark group for font styling (e.g. bold, italic, underline, superscript).\n */\n FontStyle: \"fontStyle\",\n /**\n * Mark groups for links.\n */\n Link: \"link\",\n /**\n * Mark groups for colors (text-color, background-color, etc).\n */\n Color: \"color\",\n /**\n * Mark group for alignment.\n */\n Alignment: \"alignment\",\n /**\n * Mark group for indentation.\n */\n Indentation: \"indentation\",\n /**\n * Extension which affect the behaviour of the content. Can be nodes marks or\n * plain.\n */\n Behavior: \"behavior\",\n /**\n * Marks and nodes which contain code.\n */\n Code: \"code\",\n /**\n * Whether this node is an inline node.\n *\n * - `text` is an inline node, but `paragraph` is a block node.\n */\n InlineNode: \"inline\",\n /**\n * This is a node that can contain list items.\n */\n ListContainerNode: \"listContainer\",\n /**\n * Tags the extension as a list item node which can be contained by\n * [[`ExtensionTag.ListNode`]].\n */\n ListItemNode: \"listItemNode\",\n /**\n * Sets this as a block level node.\n */\n Block: \"block\",\n /**\n * @deprecate use `ExtensionTags.Block` instead.\n */\n BlockNode: \"block\",\n /**\n * Set this as a text block\n */\n TextBlock: \"textBlock\",\n /**\n * A tag that excludes this from input rules.\n */\n ExcludeInputRules: \"excludeFromInputRules\",\n /**\n * A mark or node that can't be exited when at the end and beginning of the\n * document with an arrow key or backspace key.\n */\n PreventExits: \"preventsExits\",\n /**\n * Represents a media compatible node.\n */\n Media: \"media\"\n};\nvar ExtensionTag = BaseExtensionTag;\nvar __INTERNAL_REMIRROR_IDENTIFIER_KEY__ = Symbol.for(\"__remirror__\");\nvar RemirrorIdentifier = /* @__PURE__ */ ((RemirrorIdentifier2) => {\n RemirrorIdentifier2[\"PlainExtension\"] = \"RemirrorPlainExtension\";\n RemirrorIdentifier2[\"NodeExtension\"] = \"RemirrorNodeExtension\";\n RemirrorIdentifier2[\"MarkExtension\"] = \"RemirrorMarkExtension\";\n RemirrorIdentifier2[\"PlainExtensionConstructor\"] = \"RemirrorPlainExtensionConstructor\";\n RemirrorIdentifier2[\"NodeExtensionConstructor\"] = \"RemirrorNodeExtensionConstructor\";\n RemirrorIdentifier2[\"MarkExtensionConstructor\"] = \"RemirrorMarkExtensionConstructor\";\n RemirrorIdentifier2[\"Manager\"] = \"RemirrorManager\";\n RemirrorIdentifier2[\"Preset\"] = \"RemirrorPreset\";\n RemirrorIdentifier2[\"PresetConstructor\"] = \"RemirrorPresetConstructor\";\n return RemirrorIdentifier2;\n})(RemirrorIdentifier || {});\nvar ExtensionPriority = /* @__PURE__ */ ((ExtensionPriority2) => {\n ExtensionPriority2[ExtensionPriority2[\"Critical\"] = 1e6] = \"Critical\";\n ExtensionPriority2[ExtensionPriority2[\"Highest\"] = 1e5] = \"Highest\";\n ExtensionPriority2[ExtensionPriority2[\"High\"] = 1e4] = \"High\";\n ExtensionPriority2[ExtensionPriority2[\"Medium\"] = 1e3] = \"Medium\";\n ExtensionPriority2[ExtensionPriority2[\"Default\"] = 100] = \"Default\";\n ExtensionPriority2[ExtensionPriority2[\"Low\"] = 10] = \"Low\";\n ExtensionPriority2[ExtensionPriority2[\"Lowest\"] = 0] = \"Lowest\";\n return ExtensionPriority2;\n})(ExtensionPriority || {});\nvar ManagerPhase = /* @__PURE__ */ ((ManagerPhase2) => {\n ManagerPhase2[ManagerPhase2[\"None\"] = 0] = \"None\";\n ManagerPhase2[ManagerPhase2[\"Create\"] = 1] = \"Create\";\n ManagerPhase2[ManagerPhase2[\"EditorView\"] = 2] = \"EditorView\";\n ManagerPhase2[ManagerPhase2[\"Runtime\"] = 3] = \"Runtime\";\n ManagerPhase2[ManagerPhase2[\"Destroy\"] = 4] = \"Destroy\";\n return ManagerPhase2;\n})(ManagerPhase || {});\nvar NamedShortcut = /* @__PURE__ */ ((NamedShortcut2) => {\n NamedShortcut2[\"Undo\"] = \"_|undo|_\";\n NamedShortcut2[\"Redo\"] = \"_|redo|_\";\n NamedShortcut2[\"Bold\"] = \"_|bold|_\";\n NamedShortcut2[\"Italic\"] = \"_|italic|_\";\n NamedShortcut2[\"Underline\"] = \"_|underline|_\";\n NamedShortcut2[\"Strike\"] = \"_|strike|_\";\n NamedShortcut2[\"Code\"] = \"_|code|_\";\n NamedShortcut2[\"Paragraph\"] = \"_|paragraph|_\";\n NamedShortcut2[\"H1\"] = \"_|h1|_\";\n NamedShortcut2[\"H2\"] = \"_|h2|_\";\n NamedShortcut2[\"H3\"] = \"_|h3|_\";\n NamedShortcut2[\"H4\"] = \"_|h4|_\";\n NamedShortcut2[\"H5\"] = \"_|h5|_\";\n NamedShortcut2[\"H6\"] = \"_|h6|_\";\n NamedShortcut2[\"TaskList\"] = \"_|task|_\";\n NamedShortcut2[\"BulletList\"] = \"_|bullet|_\";\n NamedShortcut2[\"OrderedList\"] = \"_|number|_\";\n NamedShortcut2[\"Quote\"] = \"_|quote|_\";\n NamedShortcut2[\"Divider\"] = \"_|divider|_\";\n NamedShortcut2[\"Codeblock\"] = \"_|codeblock|_\";\n NamedShortcut2[\"ClearFormatting\"] = \"_|clear|_\";\n NamedShortcut2[\"Superscript\"] = \"_|sup|_\";\n NamedShortcut2[\"Subscript\"] = \"_|sub|_\";\n NamedShortcut2[\"LeftAlignment\"] = \"_|left-align|_\";\n NamedShortcut2[\"CenterAlignment\"] = \"_|center-align|_\";\n NamedShortcut2[\"RightAlignment\"] = \"_|right-align|_\";\n NamedShortcut2[\"JustifyAlignment\"] = \"_|justify-align|_\";\n NamedShortcut2[\"InsertLink\"] = \"_|link|_\";\n NamedShortcut2[\"Find\"] = \"_|find|_\";\n NamedShortcut2[\"FindBackwards\"] = \"_|find-backwards|_\";\n NamedShortcut2[\"FindReplace\"] = \"_|find-replace|_\";\n NamedShortcut2[\"AddFootnote\"] = \"_|footnote|_\";\n NamedShortcut2[\"AddComment\"] = \"_|comment|_\";\n NamedShortcut2[\"ContextMenu\"] = \"_|context-menu|_\";\n NamedShortcut2[\"IncreaseFontSize\"] = \"_|inc-font-size|_\";\n NamedShortcut2[\"DecreaseFontSize\"] = \"_|dec-font-size|_\";\n NamedShortcut2[\"IncreaseIndent\"] = \"_|indent|_\";\n NamedShortcut2[\"DecreaseIndent\"] = \"_|dedent|_\";\n NamedShortcut2[\"Shortcuts\"] = \"_|shortcuts|_\";\n NamedShortcut2[\"Copy\"] = \"_|copy|_\";\n NamedShortcut2[\"Cut\"] = \"_|cut|_\";\n NamedShortcut2[\"Paste\"] = \"_|paste|_\";\n NamedShortcut2[\"PastePlain\"] = \"_|paste-plain|_\";\n NamedShortcut2[\"SelectAll\"] = \"_|select-all|_\";\n NamedShortcut2[\"Format\"] = \"_|format|_\";\n return NamedShortcut2;\n})(NamedShortcut || {});\nvar EMPTY_ARRAY = [];\n\n// packages/remirror__core-constants/src/error-constants.ts\nvar ErrorConstant = /* @__PURE__ */ ((ErrorConstant2) => {\n ErrorConstant2[\"PROD\"] = \"RMR0000\";\n ErrorConstant2[\"UNKNOWN\"] = \"RMR0001\";\n ErrorConstant2[\"INVALID_COMMAND_ARGUMENTS\"] = \"RMR0002\";\n ErrorConstant2[\"CUSTOM\"] = \"RMR0003\";\n ErrorConstant2[\"CORE_HELPERS\"] = \"RMR0004\";\n ErrorConstant2[\"MUTATION\"] = \"RMR0005\";\n ErrorConstant2[\"INTERNAL\"] = \"RMR0006\";\n ErrorConstant2[\"MISSING_REQUIRED_EXTENSION\"] = \"RMR0007\";\n ErrorConstant2[\"MANAGER_PHASE_ERROR\"] = \"RMR0008\";\n ErrorConstant2[\"INVALID_GET_EXTENSION\"] = \"RMR0010\";\n ErrorConstant2[\"INVALID_MANAGER_ARGUMENTS\"] = \"RMR0011\";\n ErrorConstant2[\"SCHEMA\"] = \"RMR0012\";\n ErrorConstant2[\"HELPERS_CALLED_IN_OUTER_SCOPE\"] = \"RMR0013\";\n ErrorConstant2[\"INVALID_MANAGER_EXTENSION\"] = \"RMR0014\";\n ErrorConstant2[\"DUPLICATE_COMMAND_NAMES\"] = \"RMR0016\";\n ErrorConstant2[\"DUPLICATE_HELPER_NAMES\"] = \"RMR0017\";\n ErrorConstant2[\"NON_CHAINABLE_COMMAND\"] = \"RMR0018\";\n ErrorConstant2[\"INVALID_EXTENSION\"] = \"RMR0019\";\n ErrorConstant2[\"INVALID_CONTENT\"] = \"RMR0021\";\n ErrorConstant2[\"INVALID_NAME\"] = \"RMR0050\";\n ErrorConstant2[\"EXTENSION\"] = \"RMR0100\";\n ErrorConstant2[\"EXTENSION_SPEC\"] = \"RMR0101\";\n ErrorConstant2[\"EXTENSION_EXTRA_ATTRIBUTES\"] = \"RMR0102\";\n ErrorConstant2[\"INVALID_SET_EXTENSION_OPTIONS\"] = \"RMR0103\";\n ErrorConstant2[\"REACT_PROVIDER_CONTEXT\"] = \"RMR0200\";\n ErrorConstant2[\"REACT_GET_ROOT_PROPS\"] = \"RMR0201\";\n ErrorConstant2[\"REACT_EDITOR_VIEW\"] = \"RMR0202\";\n ErrorConstant2[\"REACT_CONTROLLED\"] = \"RMR0203\";\n ErrorConstant2[\"REACT_NODE_VIEW\"] = \"RMR0204\";\n ErrorConstant2[\"REACT_GET_CONTEXT\"] = \"RMR0205\";\n ErrorConstant2[\"REACT_COMPONENTS\"] = \"RMR0206\";\n ErrorConstant2[\"REACT_HOOKS\"] = \"RMR0207\";\n ErrorConstant2[\"I18N_CONTEXT\"] = \"RMR0300\";\n return ErrorConstant2;\n})(ErrorConstant || {});\nexport {\n EMPTY_ARRAY,\n EMPTY_NODE,\n EMPTY_PARAGRAPH_NODE,\n ErrorConstant,\n ExtensionPriority,\n ExtensionTag,\n LEAF_NODE_REPLACING_CHARACTER,\n ManagerPhase,\n NON_BREAKING_SPACE_CHAR,\n NULL_CHARACTER,\n NamedShortcut,\n REMIRROR_WEBVIEW_NAME,\n RemirrorIdentifier,\n SELECTED_NODE_CLASS_NAME,\n SELECTED_NODE_CLASS_SELECTOR,\n STATE_OVERRIDE,\n ZERO_WIDTH_SPACE_CHAR,\n __INTERNAL_REMIRROR_IDENTIFIER_KEY__,\n mutateTag\n};\n", "/* eslint-disable no-undefined,no-param-reassign,no-shadow */\n\n/**\n * Throttle execution of a function. Especially useful for rate limiting\n * execution of handlers on events like resize and scroll.\n *\n * @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {boolean} [noTrailing] - Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds while the\n * throttled-function is being called. If noTrailing is false or unspecified, callback will be executed one final time\n * after the last throttled-function call. (After the throttled-function has not been called for `delay` milliseconds,\n * the internal counter is reset).\n * @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the throttled-function is executed.\n * @param {boolean} [debounceMode] - If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is false (at end),\n * schedule `callback` to execute after `delay` ms.\n *\n * @returns {Function} A new, throttled, function.\n */\nexport default function (delay, noTrailing, callback, debounceMode) {\n\t/*\n\t * After wrapper has stopped being called, this timeout ensures that\n\t * `callback` is executed at the proper times in `throttle` and `end`\n\t * debounce modes.\n\t */\n\tlet timeoutID;\n\tlet cancelled = false;\n\n\t// Keep track of the last time `callback` was executed.\n\tlet lastExec = 0;\n\n\t// Function to clear existing timeout\n\tfunction clearExistingTimeout() {\n\t\tif (timeoutID) {\n\t\t\tclearTimeout(timeoutID);\n\t\t}\n\t}\n\n\t// Function to cancel next exec\n\tfunction cancel() {\n\t\tclearExistingTimeout();\n\t\tcancelled = true;\n\t}\n\n\t// `noTrailing` defaults to falsy.\n\tif (typeof noTrailing !== 'boolean') {\n\t\tdebounceMode = callback;\n\t\tcallback = noTrailing;\n\t\tnoTrailing = undefined;\n\t}\n\n\t/*\n\t * The `wrapper` function encapsulates all of the throttling / debouncing\n\t * functionality and when executed will limit the rate at which `callback`\n\t * is executed.\n\t */\n\tfunction wrapper(...arguments_) {\n\t\tlet self = this;\n\t\tlet elapsed = Date.now() - lastExec;\n\n\t\tif (cancelled) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Execute `callback` and update the `lastExec` timestamp.\n\t\tfunction exec() {\n\t\t\tlastExec = Date.now();\n\t\t\tcallback.apply(self, arguments_);\n\t\t}\n\n\t\t/*\n\t\t * If `debounceMode` is true (at begin) this is used to clear the flag\n\t\t * to allow future `callback` executions.\n\t\t */\n\t\tfunction clear() {\n\t\t\ttimeoutID = undefined;\n\t\t}\n\n\t\tif (debounceMode && !timeoutID) {\n\t\t\t/*\n\t\t\t * Since `wrapper` is being called for the first time and\n\t\t\t * `debounceMode` is true (at begin), execute `callback`.\n\t\t\t */\n\t\t\texec();\n\t\t}\n\n\t\tclearExistingTimeout();\n\n\t\tif (debounceMode === undefined && elapsed > delay) {\n\t\t\t/*\n\t\t\t * In throttle mode, if `delay` time has been exceeded, execute\n\t\t\t * `callback`.\n\t\t\t */\n\t\t\texec();\n\t\t} else if (noTrailing !== true) {\n\t\t\t/*\n\t\t\t * In trailing throttle mode, since `delay` time has not been\n\t\t\t * exceeded, schedule `callback` to execute `delay` ms after most\n\t\t\t * recent execution.\n\t\t\t *\n\t\t\t * If `debounceMode` is true (at begin), schedule `clear` to execute\n\t\t\t * after `delay` ms.\n\t\t\t *\n\t\t\t * If `debounceMode` is false (at end), schedule `callback` to\n\t\t\t * execute after `delay` ms.\n\t\t\t */\n\t\t\ttimeoutID = setTimeout(\n\t\t\t\tdebounceMode ? clear : exec,\n\t\t\t\tdebounceMode === undefined ? delay - elapsed : delay\n\t\t\t);\n\t\t}\n\t}\n\n\twrapper.cancel = cancel;\n\n\t// Return the wrapper function.\n\treturn wrapper;\n}\n", "/* eslint-disable no-undefined */\n\nimport throttle from './throttle';\n\n/**\n * Debounce execution of a function. Debouncing, unlike throttling,\n * guarantees that a function is only executed a single time, either at the\n * very beginning of a series of calls, or at the very end.\n *\n * @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {boolean} [atBegin] - Optional, defaults to false. If atBegin is false or unspecified, callback will only be executed `delay` milliseconds\n * after the last debounced-function call. If atBegin is true, callback will be executed only at the first debounced-function call.\n * (After the throttled-function has not been called for `delay` milliseconds, the internal counter is reset).\n * @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the debounced-function is executed.\n *\n * @returns {Function} A new, debounced function.\n */\nexport default function (delay, atBegin, callback) {\n\treturn callback === undefined\n\t\t? throttle(delay, atBegin, false)\n\t\t: throttle(delay, callback, atBegin !== false);\n}\n", "import { type FC } from 'react'\nimport styled, { css } from 'styled-components'\n\nexport enum ResizableHandleType {\n Right,\n Left,\n Top,\n Bottom,\n TopRight,\n TopLeft,\n BottomRight,\n BottomLeft,\n}\n\ninterface ResizableHandleProps extends BaseComponentProps {\n visible: boolean\n handleType: ResizableHandleType\n onResizing?: (e: React.MouseEvent, handleType: ResizableHandleType) => void\n}\n\nconst ResizableHandleContainer = styled.span<ResizableHandleProps>`\n position: absolute;\n border-radius: 12px;\n border: 2px solid #fff;\n background: rgba(0, 0, 0, 0.65);\n border: 1px solid rgba(255, 255, 255, 0.5);\n border-radius: 6px;\n transition: opacity 300ms ease-in 0s;\n z-index: 99;\n\n ${(props) => {\n if (props.visible) {\n return css`\n opacity: 1;\n `\n } else {\n return css`\n opacity: 0;\n `\n }\n }}\n\n ${(props) => {\n switch (props.handleType) {\n case ResizableHandleType.BottomLeft:\n return css`\n left: -6px;\n bottom: -10px;\n cursor: sw-resize;\n `\n case ResizableHandleType.BottomRight:\n return css`\n right: -6px;\n bottom: -10px;\n cursor: se-resize;\n `\n case ResizableHandleType.TopLeft:\n return css`\n left: -6px;\n top: -6px;\n cursor: nw-resize;\n `\n case ResizableHandleType.TopRight:\n return css`\n right: -6px;\n top: -6px;\n cursor: ne-resize;\n `\n case ResizableHandleType.Left:\n return css`\n left: 6px;\n top: calc(50% - 20px);\n height: 30px;\n width: 6px;\n cursor: col-resize;\n `\n case ResizableHandleType.Right:\n return css`\n right: 6px;\n top: calc(50% - 20px);\n height: 30px;\n width: 6px;\n cursor: col-resize;\n `\n case ResizableHandleType.Top:\n return css`\n left: calc(50% - 20px);\n top: 6px;\n height: 6px;\n width: 30px;\n cursor: row-resize;\n `\n case ResizableHandleType.Bottom:\n return css`\n right: calc(50% - 20px);\n bottom: 6px;\n height: 6px;\n width: 30px;\n cursor: row-resize;\n `\n default:\n break\n }\n }}\n`\n\nexport const ResizableHandle: FC<ResizableHandleProps> = (props) => {\n const handleResizing: React.MouseEventHandler = (e) => {\n if (props.onResizing) {\n props.onResizing(e, props.handleType)\n }\n }\n\n return (\n <ResizableHandleContainer\n className='resizeable-handle'\n visible={props.visible}\n handleType={props.handleType}\n onMouseDown={handleResizing}\n />\n )\n}\n", "import { parse, stringify } from 'querystringify'\nimport type {\n ApplySchemaAttributes,\n CommandFunction,\n InputRule,\n LiteralUnion,\n NodeExtensionSpec,\n NodeSpecOverride,\n ProsemirrorAttributes,\n Shape} from '@remirror/core'\nimport {\n command,\n cx,\n extension,\n ExtensionTag,\n findSelectedNodeOfType,\n NodeExtension,\n nodeInputRule,\n object,\n omitExtraAttributes\n} from '@remirror/core'\nimport type { NodeViewComponentProps } from '@remirror/react'\nimport type { ComponentType } from 'react'\nimport type { IframeOptions } from './iframe-types'\nimport { IframeNodeView } from './Iframe-nodeview'\nimport type { NodeSerializerOptions} from '@/transform'\nimport { ParserRuleType } from '@/transform'\nimport { buildHtmlStringFromAst, getAttrsBySignalHtmlContent } from '@/utils/html'\n\nexport type IframeAttributes = ProsemirrorAttributes<{\n src: string;\n frameBorder?: number | string;\n allowFullScreen?: 'true' | boolean;\n width?: number;\n height?: number;\n type?: LiteralUnion<'youtube', string>;\n}>;\n\n/**\n * An extension for the remirror editor.\n */\n@extension<IframeOptions>({\n defaultOptions: {\n defaultSource: '',\n class: 'remirror-iframe',\n enableResizing: false,\n },\n staticKeys: ['defaultSource', 'class'],\n})\nexport class IframeExtension extends NodeExtension<IframeOptions> {\n get name() {\n return 'iframe_inline' as const\n }\n\n createTags() {\n return [ExtensionTag.InlineNode, ExtensionTag.Media]\n }\n\n ReactComponent: ComponentType<NodeViewComponentProps> | undefined = (props) => {\n return <IframeNodeView {...props}/>\n }\n\n createNodeSpec(extra: ApplySchemaAttributes, override: NodeSpecOverride): NodeExtensionSpec {\n const { defaultSource } = this.options\n\n return {\n inline: true,\n selectable: true,\n atom: true,\n ...override,\n attrs: {\n ...extra.defaults(),\n src: defaultSource ? { default: defaultSource } : {},\n allowFullScreen: { default: true },\n frameBorder: { default: 0 },\n type: { default: 'custom' },\n width: { default: null },\n height: { default: null },\n },\n parseDOM: [\n {\n tag: 'iframe',\n getAttrs: (dom): IframeAttributes => {\n const frameBorder = (dom as HTMLElement).getAttribute('frameborder')\n const width = (dom as HTMLElement).getAttribute('width')\n const height = (dom as HTMLElement).getAttribute('height')\n return {\n ...extra.parse(dom),\n type: (dom as HTMLElement).getAttribute('data-embed-type') ?? undefined,\n height: (height && Number.parseInt(height, 10)) || undefined,\n width: (width && Number.parseInt(width, 10)) || undefined,\n allowFullScreen:\n (dom as HTMLElement).getAttribute('allowfullscreen') === 'false' ? false : true,\n frameBorder: frameBorder ? Number.parseInt(frameBorder, 10) : 0,\n src: (dom as HTMLElement).getAttribute('src') ?? '',\n }\n },\n },\n ...(override.parseDOM ?? []),\n ],\n toDOM: (node) => {\n const { frameBorder, allowFullScreen, src, type, ...rest } = omitExtraAttributes(\n node.attrs,\n extra,\n )\n const { class: className } = this.options\n\n return [\n 'iframe',\n {\n ...extra.dom(node),\n ...rest,\n class: cx(className, `${className}-${type as string}`),\n src,\n 'data-embed-type': type,\n allowfullscreen: allowFullScreen ? 'true' : 'false',\n frameBorder: frameBorder?.toString(),\n },\n ]\n },\n }\n }\n\n /**\n * Add a custom iFrame to the editor.\n */\n @command()\n addIframe(attributes: IframeAttributes): CommandFunction {\n return ({ tr, dispatch }) => {\n dispatch?.(tr.replaceSelectionWith(this.type.create(attributes)))\n\n return true\n }\n }\n\n /**\n * Add a YouTube embedded iFrame to the editor.\n */\n @command()\n addYouTubeVideo(props: CreateYouTubeIframeProps): CommandFunction {\n return this.addIframe({\n src: createYouTubeUrl(props),\n frameBorder: 0,\n type: 'youtube',\n allowFullScreen: 'true',\n })\n }\n\n /**\n * Update the iFrame source for the currently selected video.\n */\n @command()\n updateIframeSource(src: string): CommandFunction {\n return ({ tr, dispatch }) => {\n const iframeNode = findSelectedNodeOfType({ selection: tr.selection, types: this.type })\n\n // Selected node is NOT an iframe node, return false indicating this command is NOT enabled\n if (!iframeNode) {\n return false\n }\n\n // Call dispatch method if present (using optional chaining), to modify the actual document\n dispatch?.(tr.setNodeMarkup(iframeNode.pos, undefined, { ...iframeNode.node.attrs, src }))\n\n // Return true, indicating this command IS enabled\n return true\n }\n }\n\n /**\n * Update the YouTube video iFrame.\n */\n @command()\n updateYouTubeVideo(props: CreateYouTubeIframeProps): CommandFunction {\n return this.updateIframeSource(createYouTubeUrl(props))\n }\n\n createInputRules(): InputRule[] {\n const rules: InputRule[] = [\n nodeInputRule({\n regexp: new RegExp('<iframe[^>]*>'),\n type: this.type,\n getAttributes: (match) => {\n return getAttrsBySignalHtmlContent(match[0])\n },\n }),\n ]\n\n return rules\n }\n\n public fromMarkdown() {\n return [\n {\n type: ParserRuleType.inline,\n token: 'iframe_inline',\n node: this.name,\n },\n ] as const\n }\n\n public toMarkdown({ state, node }: NodeSerializerOptions) {\n state.text(\n buildHtmlStringFromAst({\n tag: 'iframe',\n attrs: node.attrs,\n voidElement: true,\n }),\n false,\n )\n }\n}\n\ninterface CreateYouTubeIframeProps {\n /**\n * The video id (dQw4w9WgXcQ) or full link\n * (https://www.youtube.com/watch?v=dQw4w9WgXcQ).\n */\n video: string;\n\n /**\n * The number os seconds in to start at.\n * @defaultValue 0\n */\n startAt?: number;\n\n /**\n * When true will show the player controls.\n *\n * @defaultValue true\n */\n showControls?: boolean;\n\n /**\n * According to YouTube: _When you turn on privacy-enhanced mode, YouTube\n * won't store information about visitors on your website unless they play the\n * video._\n *\n * @defaultValue true\n */\n enhancedPrivacy?: boolean;\n}\n\n/**\n * A Url parser that relies on the browser for the majority of the work.\n */\nfunction parseUrl<Query extends Shape = Shape>(url: string) {\n const parser = document.createElement('a')\n\n // Let the browser do the work\n parser.href = url\n\n const searchObject = parse(parser.search) as Query\n\n return {\n protocol: parser.protocol,\n host: parser.host,\n hostname: parser.hostname,\n port: parser.port,\n pathname: parser.pathname,\n search: parser.search,\n searchObject,\n hash: parser.hash,\n }\n}\n\nfunction createYouTubeUrl(props: CreateYouTubeIframeProps) {\n const { video, enhancedPrivacy = true, showControls = true, startAt = 0 } = props\n const id: string = parseUrl<{ v?: string }>(video)?.searchObject?.v ?? video\n const urlStart = enhancedPrivacy ? 'https://www.youtube-nocookie.com' : 'https://www.youtube.com'\n const searchObject = object<Shape>()\n\n if (!showControls) {\n searchObject.controls = '0'\n }\n\n if (startAt) {\n searchObject['amp;start'] = startAt\n }\n\n return `${urlStart}/embed/${id}?${stringify(searchObject)}`\n}\n", "import type { NodeViewComponentProps } from '@remirror/react'\nimport { Popover } from '@markflowy/components'\nimport { Resizable } from '@/components/Resizable'\nimport { useRef } from 'react'\n\nexport function IframeNodeView(props: NodeViewComponentProps) {\n const { node, selected } = props\n const initRef = useRef<() => void>()\n\n return (\n <Popover placement='top-start' open={selected} arrow={false}>\n <Resizable controlInit={(init) => (initRef.current = init)} {...props}>\n <iframe onLoad={() => initRef.current?.()} {...node.attrs}/>\n </Resizable>\n </Popover>\n )\n}\n", "import type { EditorView } from \"prosemirror-view\"\nimport type { PluginKey } from \"prosemirror-state\"\nimport type { SlashMenuMeta } from \"./type\"\n\nexport const dispatchWithMeta = (\n view: EditorView,\n key: PluginKey,\n meta: SlashMenuMeta\n) => view.dispatch(view.state.tr.setMeta(key, meta))\n\nexport const defaultIgnoredKeys = [\n \"Unidentified\",\n \"Alt\",\n \"AltGraph\",\n \"CapsLock\",\n \"Control\",\n \"Fn\",\n \"FnLock\",\n \"F1\",\n \"F2\",\n \"F3\",\n \"F4\",\n \"F5\",\n \"F6\",\n \"F7\",\n \"F8\",\n \"F9\",\n \"F10\",\n \"F11\",\n \"F12\",\n \"F13\",\n \"F14\",\n \"F15\",\n \"F16\",\n \"F17\",\n \"F18\",\n \"F19\",\n \"F20\",\n \"F21\",\n \"F22\",\n \"F23\",\n \"F24\",\n \"Hyper\",\n \"Meta\",\n \"NumLock\",\n \"PageDown\",\n \"PageUp\",\n \"Pause\",\n \"PrintScreen\",\n \"Redo\",\n \"ScrollLock\",\n \"Shift\",\n \"Super\",\n \"Symbol\",\n \"SymbolLock\",\n \"Enter\",\n \"Tab\",\n \"ArrowDown\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \"ArrowUp\",\n \"End\",\n \"Home\",\n \"PageDown\",\n \"PageUp\",\n \"Backspace\",\n \"Clear\",\n \"Copy\",\n \"CrSel\",\n \"Cut\",\n \"Delete\",\n \"EraseEof\",\n \"ExSel\",\n \"Insert\",\n \"Paste\",\n \"Redo\",\n \"Undo\",\n \"Accept\",\n \"Again\",\n \"Attn\",\n \"Cancel\",\n \"ContextMenu\",\n \"Escape\",\n \"Execute\",\n \"Find\",\n \"Finish\",\n \"Help\",\n \"Pause\",\n \"Play\",\n \"Props\",\n \"Select\",\n \"ZoomIn\",\n \"ZoomOut\",\n \"BrightnessDown\",\n \"BrightnessUp\",\n \"Eject\",\n \"LogOff\",\n \"Power\",\n \"PowerOff\",\n \"PrintScreen\",\n \"Hibernate\",\n \"Standby\",\n \"WakeUp\",\n \"AllCandidates\",\n \"Alphanumeric\",\n \"CodeInput\",\n \"Compose\",\n \"Convert\",\n \"Dead\",\n \"FinalMode\",\n \"GroupFirst\",\n \"GroupLast\",\n \"GroupNext\",\n \"GroupPrevious\",\n \"ModeChange\",\n \"NextCandidate\",\n \"NonConvert\",\n \"PreviousCandidate\",\n \"Process\",\n \"SingleCandidate\",\n \"HangulMode\",\n \"HanjaMode\",\n \"JunjaMode\",\n \"Eisu\",\n \"Hankaku\",\n \"Hiragana\",\n \"HiraganaKatakana\",\n \"KanaMode\",\n \"KanjiMode\",\n \"Katakana\",\n \"Romaji\",\n \"Zenkaku\",\n \"ZenkakuHanaku\",\n]\n", "import { type SlashMenuState, type SlashMenuMeta, SlashMetaTypes } from './type'\nimport { defaultIgnoredKeys, dispatchWithMeta } from './utils'\n\nimport type { CreateExtensionPlugin } from 'remirror'\nimport { PlainExtension, extension } from 'remirror'\nimport { getCase, SlashCases } from './case'\n\ntype SlashMenuOptions = {}\n@extension<SlashMenuOptions>({\n defaultOptions: {},\n})\nexport class SlashMenuExtension extends PlainExtension {\n get name() {\n return 'slash-menu' as const\n }\n\n createPlugin(): CreateExtensionPlugin<SlashMenuState> {\n const initialState: SlashMenuState = {\n open: false,\n filter: '',\n ignoredKeys: defaultIgnoredKeys,\n }\n\n return {\n props: {\n handleKeyDown(view, event) {\n const editorState = view.state\n\n const state = this.getState(editorState)\n if (!state) return false\n const slashCase = getCase(state, event, view, initialState.ignoredKeys)\n\n switch (slashCase) {\n case SlashCases.OpenMenu:\n dispatchWithMeta(view, this.spec.key!, { type: SlashMetaTypes.open })\n return true\n case SlashCases.CloseMenu: {\n if (event.key === '/') {\n view.dispatch(\n editorState.tr.insertText('/').setMeta(this.spec.key!, {\n type: SlashMetaTypes.close,\n }),\n )\n } else\n dispatchWithMeta(view, this.spec.key!, {\n type: SlashMetaTypes.close,\n })\n return true\n }\n\n case SlashCases.Execute:\n case SlashCases.NextItem:\n case SlashCases.PrevItem:\n case SlashCases.addChar:\n case SlashCases.removeChar:\n case SlashCases.Catch: {\n return true\n }\n\n default:\n return false\n }\n },\n },\n\n state: {\n init() {\n return initialState\n },\n apply(tr, state) {\n // @ts-ignore\n const meta: SlashMenuMeta = tr.getMeta(this.spec.key)\n switch (meta?.type) {\n case SlashMetaTypes.open:\n return { ...initialState, open: true }\n case SlashMetaTypes.close:\n return initialState\n case SlashMetaTypes.execute:\n return {\n ...initialState,\n open: true,\n }\n default:\n return state\n }\n },\n },\n initialState,\n }\n }\n}\n", "import type { EditorView } from '@remirror/pm/view'\nimport type { SlashMenuState, OpeningConditions } from './type'\n\nexport enum SlashCases {\n OpenMenu = 'openMenu',\n CloseMenu = 'closeMenu',\n Execute = 'Execute',\n NextItem = 'NextItem',\n PrevItem = 'PrevItem',\n inputChange = 'InputChange',\n addChar = 'addChar',\n removeChar = 'removeChar',\n Ignore = 'Ignore',\n Catch = 'Catch',\n}\nconst defaultConditions = (openInSelection = false): OpeningConditions => {\n return {\n shouldOpen: (state: SlashMenuState, event: KeyboardEvent, view: EditorView) => {\n const editorState = view.state\n const resolvedPos =\n editorState.selection.from < 0 || editorState.selection.from > editorState.doc.content.size\n ? null\n : editorState.doc.resolve(editorState.selection.from)\n\n const parentNode = resolvedPos?.parent\n const inParagraph = parentNode?.type.name === 'paragraph'\n const inEmptyPar = inParagraph && parentNode?.nodeSize === 2\n const posInLine = editorState.selection.$head.parentOffset\n const prevCharacter = editorState.selection.$head.parent.textContent.slice(\n posInLine - 1,\n posInLine,\n )\n const spaceBeforePos = prevCharacter === '\u200A' || prevCharacter === '' || prevCharacter === ' '\n return (\n !state.open &&\n event.key === '/' &&\n inParagraph &&\n (inEmptyPar ||\n spaceBeforePos ||\n (editorState.selection.from !== editorState.selection.to && openInSelection))\n )\n },\n shouldClose: (state: SlashMenuState, event: KeyboardEvent) =>\n state.open &&\n (event.key === '/' || event.key === 'Escape' || event.key === 'Backspace') &&\n state.filter.length === 0,\n }\n}\nexport const getCase = (\n state: SlashMenuState,\n event: KeyboardEvent,\n view: EditorView,\n ignoredKeys: string[],\n customConditions?: OpeningConditions,\n shouldOpenInSelection?: boolean,\n): SlashCases => {\n const condition = customConditions || defaultConditions(shouldOpenInSelection)\n if (condition.shouldOpen(state, event, view)) {\n return SlashCases.OpenMenu\n }\n if (condition.shouldClose(state, event, view)) {\n return SlashCases.CloseMenu\n }\n if (state.open) {\n if (event.key === 'ArrowDown') {\n return SlashCases.NextItem\n }\n if (event.key === 'ArrowUp') {\n return SlashCases.PrevItem\n }\n if (\n event.key === 'Enter' ||\n event.key === 'Tab'\n ) {\n return SlashCases.Execute\n }\n if (\n event.key === 'Escape' ||\n (event.key === 'Backspace' && state.filter.length === 0)\n ) {\n return SlashCases.CloseMenu\n }\n if (state.filter.length > 0 && event.key === 'Backspace') {\n return SlashCases.removeChar\n }\n if (!ignoredKeys.includes(event.key)) {\n return SlashCases.addChar\n }\n if (event.key === 'ArrowLeft' || event.key === 'ArrowRight') {\n return SlashCases.Catch\n }\n }\n\n return SlashCases.Ignore\n}\n", "import type {\n CreateExtensionPlugin,\n OnSetOptionsProps,\n ProsemirrorAttributes,\n} from '@remirror/core'\nimport { extension, ManagerPhase, PlainExtension } from '@remirror/core'\nimport type { EditorState } from '@remirror/pm/state'\nimport { Decoration, DecorationSet } from '@remirror/pm/view'\nimport { ExtensionPlaceholderTheme } from '@remirror/theme'\n\nexport interface PlaceholderOptions {\n /**\n * The placeholder text to use.\n */\n placeholder?: string\n\n /**\n * The class to decorate the empty top level node with. If you change this\n * then you will also need to apply your own styles.\n */\n emptyNodeClass?: string\n}\n\nexport interface PlaceholderPluginState extends Required<PlaceholderOptions> {\n empty: boolean\n}\n\n/**\n * The placeholder extension which adds a placeholder annotation to an empty\n * document.\n */\n@extension<PlaceholderOptions>({\n defaultOptions: {\n emptyNodeClass: ExtensionPlaceholderTheme.IS_EMPTY,\n placeholder: '',\n },\n staticKeys: [],\n handlerKeys: [],\n customHandlerKeys: []\n})\nexport class PlaceholderExtension extends PlainExtension<PlaceholderOptions> {\n get name() {\n return 'placeholder' as const\n }\n\n createAttributes(): ProsemirrorAttributes {\n return { 'aria-placeholder': this.options.placeholder }\n }\n\n createPlugin(): CreateExtensionPlugin {\n return {\n props: {\n decorations: (state) => createDecorationSet({ state, extension: this }),\n },\n }\n }\n\n protected onSetOptions(props: OnSetOptionsProps<PlaceholderOptions>): void {\n const { changes } = props\n\n if (changes.placeholder.changed && this.store.phase >= ManagerPhase.EditorView) {\n // update the attributes object\n this.store.updateAttributes()\n }\n }\n}\n\ninterface SharedProps {\n /**\n * A reference to the extension\n */\n extension: PlaceholderExtension\n /**\n * The editor state\n */\n state: EditorState\n}\n\n/**\n * Creates a decoration set from the passed through state.\n *\n * @param props - see [[`SharedProps`]]\n */\nfunction createDecorationSet(props: SharedProps) {\n const { extension: ext, state } = props\n const { emptyNodeClass, placeholder } = ext.options\n const decorations: any = []\n state.doc.descendants((node, pos) => {\n if (\n node.type.name === 'paragraph' &&\n node.content.size === 0 &&\n placeholder &&\n state.selection.from - 1 === pos\n ) {\n const placeholderDecoration = Decoration.node(pos, pos + node.nodeSize, {\n class: emptyNodeClass,\n 'data-placeholder': placeholder,\n })\n decorations.push(placeholderDecoration)\n }\n })\n return DecorationSet.create(state.doc, decorations)\n}\n", "import { Remirror } from '@remirror/react'\nimport { type FC, createContext, memo, useMemo, useCallback } from 'react'\nimport Text from '../Text'\nimport Wrapper from '../Wrapper'\nimport { createWysiwygDelegate } from './delegate'\nimport TableToolbar from '../../toolbar/TableToolbar'\nimport { ProsemirrorDevTools } from '@remirror/dev'\nimport ErrorBoundary from '../ErrorBoundary'\nimport type { Extension, RemirrorEventListener } from '@remirror/core'\nimport type { EditorProps } from '../Editor'\nimport { SlashMenu } from '../../toolbar/SlashMenu'\nimport type { DocToString, StringToDoc } from '../../types'\n\nexport const OffsetContext = createContext({ top: 0, left: 0 })\n\nexport const wysiwygTransformer: {\n stringToDoc: StringToDoc | null\n docToString: DocToString | null\n} = { stringToDoc: null, docToString: null }\n\nconst WysiwygEditor: FC<EditorProps> = (props) => {\n const { content, hooks, delegate, offset, wysiwygToolBar, isTesting, editable } = props\n\n const editorDelegate = useMemo(() => delegate ?? createWysiwygDelegate(), [delegate])\n\n const handleChange: RemirrorEventListener<Extension> = useCallback(\n (params) => {\n try {\n const textContent = editorDelegate.docToString(params.state.doc)\n props.onChange?.(params, textContent)\n } catch (error) {\n console.error(error)\n }\n },\n [editorDelegate, props],\n )\n\n if (wysiwygTransformer.stringToDoc === null) {\n wysiwygTransformer.stringToDoc = editorDelegate.stringToDoc\n wysiwygTransformer.docToString = editorDelegate.docToString\n }\n\n let initialContent\n try {\n initialContent = editorDelegate.stringToDoc(content)\n } catch (error) {\n return <ErrorBoundary hasError error={error} />\n }\n\n return (\n <ErrorBoundary>\n <Wrapper>\n <OffsetContext.Provider value={offset || { top: 0, left: 0 }}>\n <Remirror\n manager={editorDelegate.manager}\n initialContent={initialContent}\n hooks={hooks}\n editable={editable}\n onChange={handleChange}\n >\n <TableToolbar />\n <SlashMenu />\n {wysiwygToolBar || null}\n <Text className='w-full markdown-body' />\n {isTesting ? <ProsemirrorDevTools /> : null}\n </Remirror>\n </OffsetContext.Provider>\n </Wrapper>\n </ErrorBoundary>\n )\n}\n\nWysiwygEditor.defaultProps = {\n editable: true,\n}\n\nexport default memo(WysiwygEditor)\nexport * from './delegate'\n", "import styled from 'styled-components'\n\nexport default styled.div`\n width: 100%;\n`\n", "import { createReactManager } from '@remirror/react'\nimport { initDocMarks } from '../../extensions/Inline'\nimport type { AnyExtension } from 'remirror'\nimport type { RemirrorManager } from '@remirror/core'\nimport { isExtension } from '@remirror/core'\nimport type { ExtensionsOptions, MarkdownNodeExtension } from '../../extensions'\nimport type { ParserRule, NodeSerializerSpecs } from '../../transform'\nimport { MarkdownParser, MarkdownSerializer } from '../../transform'\nimport type { StringToDoc, DocToString, EditorDelegate } from '../../types'\nimport EditorExtensions from '../../extensions'\nimport \"prosemirror-flat-list/dist/style.css\"\nimport type { Node } from '@remirror/pm/model'\n\nfunction isMarkdownNodeExtension(extension: unknown): extension is MarkdownNodeExtension {\n return !!(\n isExtension(extension) &&\n (extension as unknown as MarkdownNodeExtension).fromMarkdown &&\n (extension as unknown as MarkdownNodeExtension).toMarkdown\n )\n}\n\nexport function buildMarkdownParser<Extension extends AnyExtension>(\n manager: RemirrorManager<Extension>,\n) {\n const parserRules: ParserRule[] = []\n for (const extension of manager.extensions) {\n if (isMarkdownNodeExtension(extension)) {\n parserRules.push(...extension.fromMarkdown())\n }\n }\n return new MarkdownParser(manager.schema, parserRules)\n}\n\nexport function buildMarkdownSerializer<Extension extends AnyExtension>(\n manager: RemirrorManager<Extension>,\n) {\n const specs: NodeSerializerSpecs = {}\n for (const extension of manager.extensions) {\n if (isMarkdownNodeExtension(extension)) {\n specs[extension.name] = extension.toMarkdown\n }\n }\n return new MarkdownSerializer(specs)\n}\n\nexport type CreateWysiwygDelegateOptions = {\n handleViewImgSrcUrl?: ExtensionsOptions['handleViewImgSrcUrl']\n}\n\nexport const createWysiwygDelegate = ({\n handleViewImgSrcUrl,\n}: CreateWysiwygDelegateOptions = {}): EditorDelegate<any>=> {\n const manager = createReactManager(() => {\n return [\n ...EditorExtensions({ handleViewImgSrcUrl }),\n ]\n })\n\n const parser = buildMarkdownParser(manager)\n const serializer = buildMarkdownSerializer(manager)\n\n const stringToDoc: StringToDoc = (content: string) => {\n const doc = parser.parse(content)\n return initDocMarks(doc)\n }\n\n const docToString: DocToString = (doc: Node) => {\n return serializer.serialize(doc)\n }\n\n return {\n view: 'Wysiwyg',\n manager,\n stringToDoc,\n docToString,\n }\n}\n", "import { PositionerPortal, useCommands, useMultiPositioner } from '@remirror/react'\nimport { useEffect } from 'react'\nimport ActiveCellMenu from './ActiveCellMenu'\nimport TitleBar from './TableBar'\nimport type { PositionerIllustrationProps} from './positioner'\nimport { activeCellColumnAndRowPositioner } from './positioner'\n\nconst MultiPositionerIllustration = ({ positioner }: PositionerIllustrationProps) => {\n const positioners = useMultiPositioner(positioner, [])\n const { forceUpdatePositioners } = useCommands()\n\n useEffect(() => {\n forceUpdatePositioners()\n }, [forceUpdatePositioners])\n\n if (positioners.length === 0) return null\n\n const positionersRender = [TitleBar, ActiveCellMenu]\n\n return (\n <>\n {positioners.map((pos, i) => {\n const Component = positionersRender[i]\n return <Component key={pos.key} positioner={pos} />\n })}\n </>\n )\n}\n\nconst TableToolbar = () => {\n return (\n <>\n <PositionerPortal>\n <MultiPositionerIllustration positioner={activeCellColumnAndRowPositioner} />\n </PositionerPortal>\n </>\n )\n}\n\nexport default TableToolbar\n", "import { useContext, useRef, useState } from 'react'\nimport {\n ListItemText,\n ClickAwayListener,\n Grow,\n Paper,\n Popper,\n MenuItem,\n MenuList,\n} from '@mui/material'\nimport { useCommands, type UseMultiPositionerReturn } from '@remirror/react'\nimport styled from 'styled-components'\nimport { OffsetContext } from '@/components/WysiwygEditor'\n\nconst Container = styled.div`\n position: absolute;\n\n .MuiList-padding {\n padding: 0;\n }\n`\n\nconst ActiveCellMenu = (props: ActiveCellMenuProps) => {\n const { positioner } = props\n const commands = useCommands()\n const [open, setOpen] = useState(false)\n const anchorRef = useRef<HTMLDivElement>(null)\n const offset = useContext(OffsetContext)\n const options = [\n {\n label: 'insert column after',\n handler: commands.addTableColumnAfter,\n },\n {\n label: 'insert column before',\n handler: commands.addTableColumnBefore,\n },\n {\n label: 'insert row after',\n handler: commands.addTableRowAfter,\n },\n {\n label: 'insert row before',\n handler: commands.addTableRowBefore,\n },\n {\n label: 'delete column',\n handler: commands.deleteTableColumn,\n },\n {\n label: 'delete row',\n handler: commands.deleteTableRow,\n },\n ]\n\n const handleClose = (event: Event) => {\n if (anchorRef.current && anchorRef.current.contains(event.target as HTMLElement)) {\n return\n }\n\n setOpen(false)\n }\n\n const { ref, key, x, y } = positioner\n\n return (\n <Container\n key={key}\n ref={ref}\n style={{\n left: x + offset.left,\n top: y + offset.top,\n width: 20,\n height: 20,\n }}\n onMouseDown={(e) => {\n e.preventDefault()\n setOpen(true)\n }}\n >\n <div ref={anchorRef}>\n <i className='ri-equalizer-line'></i>\n </div>\n <Popper\n sx={{\n zIndex: 1,\n }}\n open={open}\n anchorEl={anchorRef.current}\n role={undefined}\n transition\n disablePortal\n >\n {({ TransitionProps, placement }) => (\n <Grow\n {...TransitionProps}\n style={{\n transformOrigin: placement === 'bottom' ? 'center top' : 'center bottom',\n }}\n >\n <Paper>\n <ClickAwayListener onClickAway={handleClose}>\n <MenuList dense autoFocusItem>\n {options.map((option) => (\n <MenuItem\n key={option.label}\n onClick={() => {\n option.handler()\n setOpen(false)\n }}\n >\n <ListItemText>{option.label}</ListItemText>\n </MenuItem>\n ))}\n </MenuList>\n </ClickAwayListener>\n </Paper>\n </Grow>\n )}\n </Popper>\n </Container>\n )\n}\n\nexport default ActiveCellMenu\n\ninterface ActiveCellMenuProps {\n positioner: UseMultiPositionerReturn\n}\n", "import { OffsetContext } from '../../components/WysiwygEditor'\nimport type { UseMultiPositionerReturn } from '@remirror/react'\nimport { useCommands } from '@remirror/react'\nimport { useContext } from 'react'\nimport styled from 'styled-components'\n\nconst Container = styled.div`\n position: absolute;\n color: ${(props) => props.theme.dangerColor};\n`\n\nfunction TableBar(props: TableBarProps) {\n const { positioner } = props\n const commands = useCommands()\n const offset = useContext(OffsetContext)\n const { ref, key, x, y } = positioner\n\n return (\n <Container\n key={key}\n ref={ref}\n style={{\n left: x + offset.left,\n top: y + offset.top - 26,\n width: 20,\n height: 20,\n }}\n onMouseDown={(e) => {\n e.preventDefault()\n commands.deleteTable()\n }}\n >\n <i className=\"ri-delete-bin-line\" />\n </Container>\n )\n}\n\ninterface TableBarProps {\n positioner: UseMultiPositionerReturn\n}\n\nexport default TableBar\n", "import type { FindProsemirrorNodeResult, Shape } from 'remirror'\nimport { findParentNodeOfType, isElementDomNode } from 'remirror'\nimport type { ResolvedPos, Selection } from '@remirror/core-types'\nimport type { PositionerPosition } from '@remirror/extension-positioner'\nimport { Positioner, hasStateChanged, isPositionVisible } from '@remirror/extension-positioner'\nimport type { ActiveCellColumnPositionerData } from '@remirror/extension-tables'\n\nexport interface PositionerIllustrationProps {\n positioner: Positioner\n}\n\nfunction findTable(selection: Selection | ResolvedPos): FindProsemirrorNodeResult | undefined {\n return findParentNodeOfType({ selection, types: 'table' })\n}\n\nfunction findCellClosestToPos(\n selection: Selection | ResolvedPos,\n): FindProsemirrorNodeResult | undefined {\n return findParentNodeOfType({ selection, types: ['tableHeaderCell', 'tableCell'] })\n}\n\nconst basePosition = { y: -999_999, x: -999_999, width: 0, height: 0 }\nconst baseRect = {\n ...basePosition,\n left: -999_999,\n top: -999_999,\n bottom: -999_999,\n right: -999_999,\n}\n\nconst defaultAbsolutePosition: PositionerPosition = {\n ...basePosition,\n rect: { ...baseRect, toJSON: () => baseRect as Shape },\n visible: false,\n}\n\nexport const activeCellColumnAndRowPositioner = Positioner.create<ActiveCellColumnPositionerData>({\n hasChanged: hasStateChanged,\n\n getActive(props) {\n const { state, view } = props\n const { selection } = state\n const table = findTable(selection)\n\n if (!table) {\n return Positioner.EMPTY\n }\n\n const cell = findCellClosestToPos(selection)\n if (!cell) {\n return Positioner.EMPTY\n }\n\n const { pos } = cell\n const tableNode = view.nodeDOM(table.pos)\n const node = view.nodeDOM(pos)\n\n if (!isElementDomNode(tableNode) || !isElementDomNode(node)) {\n return Positioner.EMPTY\n }\n\n const tableRect = tableNode.getBoundingClientRect()\n const rect = node.getBoundingClientRect()\n\n return [\n {\n pos: table.pos,\n rect: new DOMRect(tableRect.x, tableRect.y, tableRect.width, tableRect.height),\n },\n {\n pos,\n rect: new DOMRect(rect.x, tableRect.y, rect.width, tableRect.height),\n },\n ]\n },\n\n getID(data) {\n return `${data.pos}`\n },\n\n getPosition(props) {\n const { view, data: cell } = props\n const node = view.nodeDOM(cell.pos)\n\n if (!isElementDomNode(node)) {\n // This should never happen.\n return defaultAbsolutePosition\n }\n\n const rect = node.getBoundingClientRect()\n const editorRect = view.dom.getBoundingClientRect()\n\n const width = rect.width\n\n // The top and left relative to the parent `editorRect`.\n const left = view.dom.scrollLeft + rect.left - editorRect.left\n const top = view.dom.scrollTop + rect.top - editorRect.top\n const height = rect.height\n\n const columnTopRect = new DOMRect(rect.x, rect.y, width, height)\n\n return {\n x: left,\n y: top,\n width,\n height,\n rect: columnTopRect,\n visible: isPositionVisible(columnTopRect, view.dom),\n }\n },\n})\n", "import type { ErrorInfo, PropsWithChildren } from 'react'\nimport React from 'react'\nimport styled from 'styled-components'\n\nconst Title = styled.h1`\n color: ${({ theme }) => theme.dangerColor};\n`\n\ninterface ErrorBoundaryProps {\n hasError?: boolean\n error?: unknown\n}\n\nclass ErrorBoundary extends React.Component<\n PropsWithChildren<ErrorBoundaryProps>,\n { hasError: boolean }\n> {\n constructor(props: PropsWithChildren<ErrorBoundaryProps>) {\n super(props)\n this.state = { hasError: this.props.hasError ?? false }\n }\n\n static getDerivedStateFromError() {\n return { hasError: true }\n }\n\n componentDidCatch(error: Error, errorInfo: ErrorInfo) {\n console.error('[ErrorBoundary]', error, errorInfo)\n }\n\n render() {\n if (this.state.hasError) {\n return (\n <>\n <Title data-testid='editor_error'>Sorry, something went wrong!</Title>\n <p>{String(this.props.error)}</p>\n <a\n href='https://github.com/drl990114/MarkFlowy/issues/new/choose'\n target='_blank'\n rel='noreferrer'\n >\n Please tell us about it and we will fix it in less time\n </a>\n </>\n )\n }\n\n return this.props.children\n }\n}\n\nexport default ErrorBoundary\n", "import { useExtension, useRemirrorContext } from '@remirror/react-core'\nimport { SlashMenuExtension } from '@/extensions/SlashMenu'\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { usePopper } from 'react-popper'\nimport { dispatchWithMeta } from '@/extensions/SlashMenu/utils'\nimport type { SlashMenuState} from '@/extensions/SlashMenu/type'\nimport { SlashMetaTypes } from '@/extensions/SlashMenu/type'\nimport { SlashMenuRoot } from './styles'\n\nexport enum Placement {\n auto = 'auto',\n autoStart = 'auto-start',\n autoEnd = 'auto-end',\n top = 'top',\n topStart = 'top-start',\n topEnd = 'top-end',\n bottom = 'bottom',\n bottomStart = 'bottom-start',\n bottomEnd = 'bottom-end',\n right = 'right',\n rightStart = 'right-start',\n rightEnd = 'right-end',\n left = 'left',\n leftStart = 'left-start',\n leftEnd = 'left-end',\n}\n\nexport const SlashMenu = () => {\n const { view: editorView, getState, commands } = useRemirrorContext({ autoUpdate: true })\n const editorState = getState()\n\n const slashMenuExtension = useExtension(SlashMenuExtension)\n const menuState: SlashMenuState = slashMenuExtension.getPluginState()\n\n const rootRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n if (!rootRef) return\n\n const outsideClickHandler = (event: MouseEvent) => {\n if (\n rootRef.current &&\n (!event.target ||\n !(event.target instanceof Node) ||\n !rootRef.current.contains(event?.target))\n ) {\n dispatchWithMeta(editorView, slashMenuExtension.pluginKey, {\n type: SlashMetaTypes.close,\n })\n }\n }\n\n document.addEventListener('mousedown', outsideClickHandler)\n\n return () => {\n document.removeEventListener('mousedown', outsideClickHandler)\n }\n }, [editorView, rootRef, slashMenuExtension.pluginKey])\n\n const [popperElement, setPopperElement] = useState(null)\n\n const virtualReference = useMemo(() => {\n const domNode = editorView.domAtPos(editorState.selection.to)?.node\n const cursorPosition = editorView.state.selection.to\n const cursorLeft = editorView.coordsAtPos(cursorPosition).left\n\n if (!(domNode instanceof HTMLElement)) return\n\n const { top, height } = domNode.getBoundingClientRect()\n\n return {\n getBoundingClientRect() {\n return {\n top: top,\n right: cursorLeft,\n bottom: top,\n left: cursorLeft,\n width: 0,\n height: height,\n x: cursorLeft,\n y: top,\n toJSON: () =>\n JSON.stringify({\n top: top,\n right: cursorLeft,\n bottom: top,\n left: cursorLeft,\n width: 0,\n height: height,\n x: cursorLeft,\n y: top,\n }),\n }\n },\n }\n }, [editorView, editorState])\n\n const { styles, attributes } = usePopper(virtualReference, popperElement, {\n placement: Placement.bottomStart,\n modifiers: [\n { name: 'flip', enabled: true },\n {\n name: 'preventOverflow',\n },\n ],\n })\n\n const closeMenu = useCallback(() => {\n if (menuState.open) {\n dispatchWithMeta(editorView, slashMenuExtension.pluginKey, {\n type: SlashMetaTypes.close,\n })\n }\n }, [editorView, menuState.open, slashMenuExtension.pluginKey])\n\n // These two useEffects prevent a bug where the user navigates with clicks, which then blurs the editor and key presses stop working\n useEffect(() => {\n editorView.focus()\n }, [menuState?.open])\n\n return (\n <>\n {menuState.open ? (\n <div\n // @ts-ignore\n ref={setPopperElement}\n style={{\n ...styles.popper,\n backgroundColor: '#1e1e1e',\n zIndex: 1000,\n }}\n {...attributes.popper}\n >\n <SlashMenuRoot rootRef={rootRef} commands={commands} closeMenu={closeMenu} />\n </div>\n ) : null}\n </>\n )\n}\n", "import { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport type { AnyExtension, CommandsFromExtensions } from 'remirror'\nimport styled, { css } from 'styled-components'\nimport TablePanel from './TablePanel'\nimport { darken } from '@markflowy/theme'\n\ntype SlashMenuRootProps = {\n rootRef: React.RefObject<HTMLDivElement>\n commands: CommandsFromExtensions<AnyExtension>\n closeMenu: () => void\n}\n\nexport const SlashMenuRoot: React.FC<SlashMenuRootProps> = memo(\n ({ rootRef, commands, closeMenu }) => {\n const componentRefMap = useRef<Record<string, any>>({})\n\n const menuItems = useMemo(() => {\n const headingItems = Array.from({ length: 6 }).map((_, i) => {\n return {\n title: `heading ${i + 1}`,\n id: `heading${i + 1}`,\n handler: () => {\n commands.toggleHeading({ level: i + 1 })\n },\n }\n })\n\n return [\n {\n title: 'Text',\n id: 'text',\n children: headingItems,\n },\n {\n title: 'Table',\n id: 'table',\n handler: () => {\n componentRefMap.current.table?.createTable()\n },\n Renderer: {\n id: 'table',\n Component: (\n <TablePanel\n ref={(el) => (componentRefMap.current.table = el)}\n commands={commands}\n closeMenu={closeMenu}\n />\n ),\n },\n },\n ]\n }, [closeMenu, commands])\n\n const [activeGroupId, setActiveGroupId] = useState(menuItems[0].id)\n const [activeItemId, setActiveItemId] = useState<string | undefined>()\n const currentIndex = menuItems.findIndex((item) => item.id === activeGroupId)\n const currentMenuItem = menuItems[currentIndex]\n\n const handleDown = useCallback(() => {\n if (activeItemId) {\n if (currentMenuItem?.children) {\n const currentChildIndex = currentMenuItem.children.findIndex(\n (item) => item.id === activeItemId,\n )\n const nextIndex = currentChildIndex + 1\n if (nextIndex < currentMenuItem.children.length) {\n setActiveItemId(currentMenuItem.children[nextIndex].id)\n }\n } else if (currentMenuItem.Renderer) {\n setActiveItemId(currentMenuItem.Renderer.id)\n }\n } else {\n const nextIndex = currentIndex + 1\n if (nextIndex < menuItems.length) {\n setActiveGroupId(menuItems[nextIndex].id)\n }\n }\n }, [activeItemId, currentIndex, currentMenuItem.Renderer, currentMenuItem.children, menuItems])\n\n const handleUp = useCallback(() => {\n if (activeItemId) {\n if (currentMenuItem?.children) {\n const currentChildIndex = currentMenuItem.children.findIndex(\n (item) => item.id === activeItemId,\n )\n const nextIndex = currentChildIndex - 1\n if (nextIndex >= 0) {\n setActiveItemId(currentMenuItem.children[nextIndex].id)\n }\n } else if (currentMenuItem.Renderer) {\n setActiveItemId(currentMenuItem.Renderer.id)\n }\n } else {\n const nextIndex = currentIndex - 1\n if (nextIndex >= 0) {\n setActiveGroupId(menuItems[nextIndex].id)\n }\n }\n }, [activeItemId, currentIndex, currentMenuItem.Renderer, currentMenuItem.children, menuItems])\n\n const handleRight = useCallback(() => {\n if (currentMenuItem?.children) {\n setActiveItemId(currentMenuItem.children[0].id)\n } else if (currentMenuItem?.Renderer) {\n setActiveItemId(currentMenuItem.Renderer.id)\n }\n }, [currentMenuItem])\n\n const handleLeft = useCallback(() => {\n setActiveItemId(undefined)\n }, [])\n\n useEffect(() => {\n const keydownHandler = (event: KeyboardEvent) => {\n if (activeItemId) {\n const componentRef = componentRefMap.current[activeItemId]\n if (componentRef?.handleKeyDown) {\n const next = componentRef.handleKeyDown(event)\n\n if (next === false) {\n closeMenu()\n return\n }\n }\n }\n\n if (event.key === 'ArrowDown') {\n handleDown()\n } else if (event.key === 'ArrowUp') {\n handleUp()\n } else if (event.key === 'ArrowRight') {\n handleRight()\n } else if (event.key === 'ArrowLeft') {\n handleLeft()\n } else if (event.key === 'Enter') {\n if (activeItemId) {\n const item = currentMenuItem?.children?.find((child) => child.id === activeItemId)\n if (item?.handler) {\n item.handler()\n }\n }\n if (currentMenuItem?.handler) {\n currentMenuItem.handler()\n }\n closeMenu()\n }\n }\n\n document.addEventListener('keydown', keydownHandler)\n\n return () => {\n document.removeEventListener('keydown', keydownHandler)\n }\n }, [\n activeItemId,\n handleDown,\n handleLeft,\n handleRight,\n handleUp,\n closeMenu,\n menuItems,\n currentMenuItem,\n ])\n\n return (\n <div ref={rootRef} style={{ display: 'flex' }}>\n <MenuPanel active location='left'>\n {menuItems.map((item) => {\n const selected = item.id === activeGroupId\n return (\n <MenuItem onClick={() => setActiveGroupId(item.id)} key={item.id} selected={selected}>\n {item.title}\n </MenuItem>\n )\n })}\n </MenuPanel>\n <MenuPanel active={!!activeItemId} location='right'>\n {currentMenuItem?.Renderer\n ? currentMenuItem.Renderer.Component\n : currentMenuItem?.children?.map((item) => {\n const selected = item.id === activeItemId\n\n return (\n <MenuItem\n key={item.id}\n selected={selected}\n onClick={() => {\n setActiveItemId(item.id)\n item.handler?.()\n closeMenu()\n }}\n >\n {item.title}\n </MenuItem>\n )\n })}\n </MenuPanel>\n </div>\n )\n },\n)\n\ntype MenuPanelProps = {\n location: 'left' | 'right'\n active: boolean\n}\n\nconst MenuPanel = styled.div.attrs<MenuPanelProps>((p) => p)`\n display: flex;\n min-width: 130px;\n flex-direction: column;\n overscroll-behavior: contain;\n border-radius: ${(props) =>\n props.location === 'left'\n ? `${props.theme.smallBorderRadius} 0 0\n ${props.theme.smallBorderRadius}`\n : `0 ${props.theme.smallBorderRadius} ${props.theme.smallBorderRadius} 0`};\n border-width: 1px;\n border-style: solid;\n border-right: none;\n border-color: ${(props) => props.theme.borderColor};\n background-color: ${(props) =>\n props.active ? darken(props.theme.contextMenuBgColor, 0.2) : props.theme.contextMenuBgColor};\n padding: ${(props) => props.theme.spaceXs};\n color: ${(props) => props.theme.primaryFontColor};\n font-size: ${(props) => props.theme.fontXs};\n outline: none;\n overflow: visible;\n`\n\nconst MenuItem = styled.li.attrs<{\n selected: boolean\n}>((props) => ({\n ...props,\n}))`\n display: flex;\n cursor: default;\n align-items: center;\n border-radius: ${(props) => props.theme.smallBorderRadius};\n padding: ${(props) => props.theme.spaceXs};\n outline: none !important;\n\n &:hover {\n background-color: ${(props) => props.theme.blue};\n color: hsl(204 20% 100%);\n }\n\n ${(p) => {\n if (p.selected) {\n return css`\n background-color: ${(props) => props.theme.blue};\n color: hsl(204 20% 100%);\n `\n }\n }}\n`\n", "/* eslint-disable @typescript-eslint/no-shadow */\nimport { forwardRef, useState, useImperativeHandle, memo } from 'react'\nimport type { AnyExtension, CommandsFromExtensions } from 'remirror'\nimport styled from 'styled-components'\n\ntype TablePanelProps = {\n commands: CommandsFromExtensions<AnyExtension>\n closeMenu: () => void\n}\n\ntype TablePanelRef = {\n createTable: () => void\n handleKeyDown: (e: KeyboardEvent) => boolean | void\n}\n\nconst TablePanelCell = styled.div.attrs<{ inScope: boolean }>((p) => p)`\n border: 1px solid ${(props) => props.theme.borderColor};\n margin-right: 1px;\n margin-bottom: 1px;\n width: 10px;\n height: 10px;\n background-color: ${(props) =>\n props.inScope ? props.theme.blue : props.theme.contextMenuBgColor};\n`\nconst TablePanel = memo(\n forwardRef<TablePanelRef, TablePanelProps>((props, ref) => {\n const { commands, closeMenu } = props\n const [rowsCount, setRowsCount] = useState(3)\n const [columnsCount, setColumnsCount] = useState(3)\n\n useImperativeHandle(ref, () => ({\n createTable: () => {\n commands.createTable({ rowsCount, columnsCount, withHeaderRow: false})\n },\n handleKeyDown: (e) => {\n const handleRight = () => {\n setColumnsCount((prev) => prev + 1)\n }\n const handleLeft = () => {\n if (e.metaKey || e.ctrlKey) {\n return true\n }\n setColumnsCount((prev) => (prev - 1 < 1 ? 1 : prev - 1))\n return false\n }\n const handleUp = () => {\n setRowsCount((prev) => (prev - 1 < 1 ? 1 : prev - 1))\n }\n const handleDown = () => {\n setRowsCount((prev) => prev + 1)\n }\n const handleEnter = () => {\n commands.createTable({ rowsCount, columnsCount })\n return false\n }\n\n if (e.key === 'ArrowRight') {\n return handleRight()\n } else if (e.key === 'ArrowLeft') {\n return handleLeft()\n } else if (e.key === 'ArrowUp') {\n return handleUp()\n } else if (e.key === 'ArrowDown') {\n return handleDown()\n } else if (e.key === 'Enter') {\n return handleEnter()\n }\n },\n }))\n\n const displayRows = 10\n const displayCols = 6\n\n return (\n <div>\n <span>\n Rows: {rowsCount} Cols: {columnsCount}\n </span>\n {Array.from({ length: displayRows }).map((_, i) => {\n return (\n <div key={i} style={{ display: 'flex' }}>\n {Array.from({ length: displayCols }).map((_, j) => {\n const inScope = i < rowsCount && j < columnsCount\n\n return (\n <TablePanelCell\n key={j}\n inScope={inScope}\n onClick={() => {\n commands.createTable({\n rowsCount: i,\n columnsCount: j,\n withHeaderRow: false\n })\n closeMenu()\n }}\n />\n )\n })}\n </div>\n )\n })}\n </div>\n )\n }),\n)\n\nexport default TablePanel\n", "import { wysiwygTransformer } from '@/components/WysiwygEditor'\nimport type { CreateExtensionPlugin } from '@remirror/core'\nimport { PlainExtension } from '@remirror/core'\nimport type { Slice, Node } from '@remirror/pm/model'\nimport { DOMSerializer, DOMParser } from '@remirror/pm/model'\n\ntype UnknownRecord = Record<string, unknown>\nfunction isPureText(content: UnknownRecord | UnknownRecord[] | undefined | null): boolean {\n if (!content) return false\n if (Array.isArray(content)) {\n if (content.length > 1) return false\n return isPureText(content[0])\n }\n\n const child = content.content\n if (child) return isPureText(child as UnknownRecord[])\n\n return content.type === 'text'\n}\n\nfunction isTextOnlySlice(slice: Slice): Node | false {\n if (slice.content.childCount === 1) {\n const node = slice.content.firstChild\n if (node?.type.name === 'text' && node.marks.length === 0) return node\n\n if (node?.type.name === 'paragraph' && node.childCount === 1) {\n const _node = node.firstChild\n if (_node?.type.name === 'text' && _node.marks.length === 0) return _node\n }\n }\n\n return false\n}\n\nexport class ClipboardExtension extends PlainExtension {\n get name() {\n return 'clipboard' as const\n }\n\n createPlugin(): CreateExtensionPlugin {\n return {\n props: {\n handlePaste: (view, event) => {\n const parser = wysiwygTransformer.stringToDoc\n const schema = view.state.schema\n const editable = view.props.editable?.(view.state)\n const { clipboardData } = event\n if (!editable || !clipboardData) return false\n\n const currentNode = view.state.selection.$from.node()\n if (currentNode.type.spec.code) return false\n\n const text = clipboardData.getData('text/plain')\n\n const html = clipboardData.getData('text/html')\n if (html.length === 0 && text.length === 0) return false\n\n const domParser = DOMParser.fromSchema(schema)\n let dom\n if (html.length === 0) {\n const slice = parser?.(text)\n if (!slice || typeof slice === 'string') return false\n\n dom = DOMSerializer.fromSchema(schema).serializeFragment(slice.content)\n } else {\n const template = document.createElement('template')\n template.innerHTML = html\n dom = template.content.cloneNode(true)\n template.remove()\n }\n\n const slice = domParser.parseSlice(dom)\n const node = isTextOnlySlice(slice)\n if (node) {\n view.dispatch(view.state.tr.replaceSelectionWith(node, true))\n return true\n }\n\n view.dispatch(view.state.tr.replaceSelection(slice))\n return true\n },\n clipboardTextSerializer: (slice, view) => {\n const schema = view.state.schema\n const serializer = wysiwygTransformer.docToString\n const isText = isPureText(slice.content.toJSON())\n if (isText)\n return (slice.content as unknown as Node).textBetween(0, slice.content.size, '\\n\\n')\n\n const doc = schema.topNodeType.createAndFill(undefined, slice.content)\n if (!doc) return ''\n const value = serializer?.(doc) || ''\n return value\n },\n },\n }\n }\n}\n", "import type { Node } from \"@remirror/pm/model\"\nimport { isOrderedListNode } from \"../extensions\"\n\nexport type NodeSerializerOptions = {\n state: MarkdownSerializerState\n node: Node\n parent: Node\n index: number\n counter: number\n}\nexport type NodeSerializerSpec = (options: NodeSerializerOptions) => void\nexport type NodeSerializerSpecs = Record<string, NodeSerializerSpec>\n\nexport class MarkdownSerializerState {\n private nodes: NodeSerializerSpecs\n private delimiter: string\n public out: string\n private closed: Node | null\n private inTightList: boolean\n\n public constructor(nodes: NodeSerializerSpecs) {\n this.nodes = nodes\n this.delimiter = \"\"\n this.out = \"\"\n this.closed = null\n this.inTightList = false\n }\n\n public flushClose(size = 2) {\n if (this.closed) {\n this.ensureNewLine()\n if (size > 1) {\n let delimMin = this.delimiter\n const trim = /\\s+$/.exec(delimMin)\n if (trim) delimMin = delimMin.slice(0, delimMin.length - trim[0].length)\n for (let i = 1; i < size; i++) this.out += delimMin + \"\\n\"\n }\n this.closed = null\n }\n }\n\n // Render a block, prefixing each line with `delimiter`, and the first\n // line in `firstDelim`. `node` should be the node that is closed at\n // the end of the block, and `f` is a function that renders the\n // content of the block.\n public wrapBlock(newDelimiter: string, firstDelim: string | null, node: Node, f: () => void) {\n const oldDelimiter = this.delimiter\n this.write(firstDelim || newDelimiter)\n this.delimiter = this.delimiter + newDelimiter\n f()\n this.delimiter = oldDelimiter\n this.closeBlock(node)\n }\n\n public atBlank() {\n return /(^|\\n)$/.test(this.out)\n }\n\n // Ensure the current content ends with a newline.\n public ensureNewLine() {\n if (!this.atBlank()) this.out += \"\\n\"\n }\n\n // Prepare the state for writing output (closing closed paragraphs,\n // adding delimiters, and so on), and then optionally add content\n // (unescaped) to the output.\n public write(content?: string) {\n this.flushClose()\n if (this.delimiter && this.atBlank()) this.out += this.delimiter\n if (content) this.out += content\n }\n\n // Close the block for the given node.\n public closeBlock(node: Node) {\n this.closed = node\n }\n\n // Add the given text to the document. When escape is true,\n // it will be escaped.\n public text(text: string, escape = true) {\n const lines = text.split(\"\\n\")\n for (let i = 0; i < lines.length; i++) {\n const startOfLine = this.atBlank() || this.closed\n this.write()\n this.out += escape ? this.esc(lines[i], Boolean(startOfLine)) : lines[i]\n if (i != lines.length - 1) this.out += \"\\n\"\n }\n }\n\n // Render the given node as a block.\n public render(node: Node, parent: Node, index: number, counter = 0) {\n const spec = this.nodes[node.type.name]\n if (!spec) return\n if (!spec) throw new Error(`Can't find node spec for type '${node.type.name}'`)\n spec({ state: this, node, parent, index, counter })\n }\n\n // Render the contents of `parent` as block nodes.\n public renderContent(parent: Node) {\n let counter = 0\n parent.forEach((node, offset, index) => {\n if (isOrderedListNode(node)) {\n counter += 1\n } else {\n counter = 0\n }\n\n this.render(node, parent, index, counter)\n })\n }\n\n // Render the contents of `parent` as inline content.\n public renderInline(parent: Node) {\n parent.forEach((node, offset, index) => {\n if (node.isText) this.text(node.text || \"\", false)\n else this.render(node, parent, index)\n })\n }\n\n // Render a node's content as a list. `delim` should be the extra\n // indentation added to all lines except the first in an item,\n // `firstDelim` is a function going from an item index to a\n // delimiter for the first line of the item.\n public renderList(node: Node, delim: string, firstDelim: (n: number) => string): void {\n if (this.closed && this.closed.type === node.type) {\n this.flushClose(3)\n } else if (this.inTightList) {\n this.flushClose(1)\n } else {\n this.flushClose(2)\n }\n\n const prevTight = this.inTightList\n this.inTightList = true\n node.forEach((child, _, i) => {\n if (i) this.flushClose(1)\n this.wrapBlock(delim, firstDelim(i), node, () => this.render(child, node, i))\n })\n this.inTightList = prevTight\n }\n\n // Escape the given string so that it can safely appear in Markdown\n // content. If `startOfLine` is true, also escape characters that\n // has special meaning only at the start of the line.\n public esc(str: string, startOfLine?: boolean): string {\n str = str.replace(/[`*\\\\~\\[\\]]/g, \"\\\\$&\")\n if (startOfLine) str = str.replace(/^[:#\\-*+]/, \"\\\\$&\").replace(/^(\\d+)\\./, \"$1\\\\.\")\n return str\n }\n\n public quote(str: string): string {\n const wrap = !str.includes(`\"`) ? `\"\"` : !str.includes(`'`) ? `''` : `()`\n return wrap[0] + str + wrap[1]\n }\n\n // Repeat the given string `n` times.\n public repeat(str: string, n: number): string {\n let out = \"\"\n for (let i = 0; i < n; i++) out += str\n return out\n }\n\n // Get leading and trailing whitespace from a string. Values of\n // leading or trailing property of the return object will be undefined\n // if there is no match.\n public getEnclosingWhitespace(text: string) {\n return {\n leading: (/^(\\s+)/.exec(text) || [])[0],\n trailing: (/(\\s+)$/.exec(text) || [])[0],\n }\n }\n}\n\nexport class MarkdownSerializer {\n private nodes: NodeSerializerSpecs\n\n public constructor(nodes: NodeSerializerSpecs) {\n this.nodes = nodes\n }\n\n public serialize(content: Node) {\n const state = new MarkdownSerializerState(this.nodes)\n state.renderContent(content)\n return state.out\n }\n}\n", "import type Token from 'markdown-it/lib/token'\n\nimport type { NodeSerializerOptions } from '../../transform'\nimport { ParserRuleType } from '../../transform'\nimport type { EditorState } from 'remirror'\nimport { Decoration, DecorationSet } from '@remirror/pm/view'\nimport createCodeMirrorMenuDecorations from './codemirror-lang-menu'\nimport type {\n ApplySchemaAttributes,\n CommandFunction,\n EditorView,\n GetAttributes,\n InputRule,\n KeyBindingProps,\n NodeExtensionSpec,\n NodeSpecOverride,\n NodeViewMethod,\n PrioritizedKeyBindings,\n ProsemirrorNode,\n} from '@remirror/core'\nimport {\n command,\n extension,\n findParentNodeOfType,\n isElementDomNode,\n isEqual,\n isTextSelection,\n keyBinding,\n NodeExtension,\n nodeInputRule,\n setBlockType,\n} from '@remirror/core'\nimport { TextSelection } from '@remirror/pm/state'\nimport { CodeMirror6NodeView } from './codemirror-node-view'\nimport type { CodeMirrorExtensionAttributes, CodeMirrorExtensionOptions } from './codemirror-types'\nimport { arrowHandler } from './codemirror-utils'\nimport type { CreateThemeOptions} from '@/codemirror'\nimport { changeTheme } from '@/codemirror'\nimport { languages } from '@codemirror/language-data'\n\nexport const fakeIndentedLanguage = 'indent-code'\n\n@extension<CodeMirrorExtensionOptions>({\n defaultOptions: {\n hideDecoration: false,\n extensions: null,\n toggleName: 'paragraph',\n },\n})\nexport class LineCodeMirrorExtension extends NodeExtension<CodeMirrorExtensionOptions> {\n private nodeview: CodeMirror6NodeView | undefined\n get name() {\n return 'codeMirror' as const\n }\n\n createNodeSpec(extra: ApplySchemaAttributes, override: NodeSpecOverride): NodeExtensionSpec {\n return {\n group: 'block',\n content: 'text*',\n marks: '',\n defining: true,\n ...override,\n code: true,\n attrs: {\n ...extra.defaults(),\n language: { default: '' },\n },\n parseDOM: [\n {\n tag: 'pre',\n getAttrs: (node) => (isElementDomNode(node) ? extra.parse(node) : false),\n },\n ...(override.parseDOM ?? []),\n ],\n toDOM() {\n return ['pre', ['code', 0]]\n },\n isolating: true,\n }\n }\n\n createNodeViews(): NodeViewMethod {\n return (node: ProsemirrorNode, view: EditorView, getPos: () => number | undefined) => {\n this.nodeview = new CodeMirror6NodeView({\n node,\n view,\n getPos: getPos as () => number,\n extensions: this.options.extensions,\n toggleName: this.options.toggleName,\n })\n\n return this.nodeview\n }\n }\n\n createKeymap(): PrioritizedKeyBindings {\n return {\n ArrowLeft: arrowHandler('left'),\n ArrowRight: arrowHandler('right'),\n ArrowUp: arrowHandler('up'),\n ArrowDown: arrowHandler('down'),\n }\n }\n\n /**\n * Create an input rule that listens converts the code fence into a code block\n * when typing triple back tick followed by a space.\n */\n createInputRules(): InputRule[] {\n const regexp = /^```(\\S+) $/\n\n const getAttributes: GetAttributes = (match) => {\n const language = match[1] ?? ''\n return { language }\n }\n\n return [\n nodeInputRule({\n regexp,\n type: this.type,\n beforeDispatch: ({ tr, start }) => {\n const $pos = tr.doc.resolve(start)\n tr.setSelection(TextSelection.near($pos))\n },\n getAttributes: getAttributes,\n }),\n ]\n }\n\n @keyBinding({ shortcut: 'Enter' })\n enterKey({ dispatch, tr }: KeyBindingProps): boolean {\n if (!(isTextSelection(tr.selection) && tr.selection.empty)) {\n return false\n }\n\n const { nodeBefore, parent } = tr.selection.$anchor\n\n if (!nodeBefore?.isText || !parent.type.isTextblock) {\n return false\n }\n\n const regex = /^```(\\S*)?$/\n const { text, nodeSize } = nodeBefore\n const { textContent } = parent\n\n if (!text) {\n return false\n }\n\n const matchesNodeBefore = text.match(regex)\n const matchesParent = textContent.match(regex)\n\n if (!matchesNodeBefore || !matchesParent) {\n return false\n }\n\n const language = matchesNodeBefore[1] ?? ''\n\n const pos = tr.selection.$from.before()\n const end = pos + nodeSize + 1 // +1 to account for the extra pos a node takes up\n tr.replaceWith(pos, end, this.type.create({ language }))\n\n // Set the selection to within the codeBlock\n tr.setSelection(TextSelection.near(tr.doc.resolve(pos + 1)))\n\n if (dispatch) {\n dispatch(tr)\n }\n\n return true\n }\n\n /**\n * Creates a CodeMirror block at the current position.\n *\n * ```ts\n * commands.createCodeMirror({ language: 'js' });\n * ```\n */\n @command()\n createCodeMirror(attributes: CodeMirrorExtensionAttributes): CommandFunction {\n return setBlockType(this.type, attributes)\n }\n\n /**\n * Update the code block at the current position. Primarily this is used\n * to change the language.\n *\n * ```ts\n * if (commands.updateCodeMirror.isEnabled()) {\n * commands.updateCodeMirror({ language: 'markdown' });\n * }\n * ```\n */\n @command()\n updateCodeMirror(attributes: CodeMirrorExtensionAttributes): CommandFunction {\n const type = this.type\n return ({ state, dispatch, tr }) => {\n const parent = findParentNodeOfType({ types: type, selection: state.selection })\n\n if (!parent || isEqual(attributes, parent.node.attrs)) {\n // Do nothing since the attrs are the same\n return false\n }\n\n tr.setNodeMarkup(parent.pos, type, { ...parent.node.attrs, ...attributes })\n\n if (dispatch) {\n dispatch(tr)\n }\n\n return true\n }\n }\n\n @command()\n changeCodeMirrorTheme(theme: CreateThemeOptions): CommandFunction {\n return () => {\n changeTheme(theme)\n return true\n }\n }\n\n public fromMarkdown() {\n return [\n {\n type: ParserRuleType.block,\n token: 'fence',\n node: this.name,\n hasOpenClose: false,\n getAttrs: (tok: Token) => {\n const language = tok.info\n return {\n language,\n }\n },\n },\n {\n type: ParserRuleType.block,\n token: 'code_block',\n node: this.name,\n hasOpenClose: false,\n getAttrs: () => {\n return {\n language: fakeIndentedLanguage,\n }\n },\n },\n ] as const\n }\n\n public toMarkdown({ state, node }: NodeSerializerOptions) {\n if (node.attrs.language !== fakeIndentedLanguage) {\n state.write('```' + ((node.attrs.language as string) || '') + '\\n')\n state.text(node.textContent, false)\n state.text('\\n')\n state.write('```')\n state.closeBlock(node)\n } else {\n state.wrapBlock(' ', ' ', node, () => state.renderContent(node))\n state.closeBlock(node)\n }\n state.ensureNewLine()\n }\n\n createDecorations(state: EditorState): DecorationSet {\n if (this.options.hideDecoration) {\n return DecorationSet.empty\n }\n\n const found = findParentNodeOfType({ types: this.type, selection: state.selection })\n if (!found) {\n return DecorationSet.empty\n }\n\n if (!languages || languages.length <= 1) {\n return DecorationSet.empty\n }\n\n const { create, destroy } = createCodeMirrorMenuDecorations(found)\n\n const deco = Decoration.widget(found.pos, create, {\n ignoreSelection: true,\n stopEvent: () => true,\n key: 'language-menu',\n destroy,\n })\n\n return DecorationSet.create(state.doc, [deco])\n }\n}\n", "import { languages } from '@codemirror/language-data'\nimport type { EditorView, FindProsemirrorNodeResult } from 'remirror'\nimport Drop from 'tether-drop'\nimport { fakeIndentedLanguage } from './codemirror-extension'\nimport Fuse from 'fuse.js'\n\ninterface CodeMirrorMenuDecorations {\n create: (view: EditorView, getPos: () => number | undefined) => HTMLElement\n destroy: () => void\n}\n\nconst createLanguagesList = (currentLanguage: string): HTMLUListElement => {\n const languagesList = document.createElement('ul')\n languagesList.classList.add('code-block__languages')\n languages.forEach((language) => {\n const languageItem = document.createElement('li')\n languageItem.classList.add('code-block__language')\n languageItem.classList.toggle('code-block__language--active', language.name === currentLanguage)\n languageItem.innerText = language.name\n languagesList.append(languageItem)\n })\n\n return languagesList\n}\n\nconst updateLanguagesList = ({\n keyword,\n languagesList,\n currentLanguage,\n}: {\n keyword?: string\n languagesList: HTMLUListElement\n currentLanguage: string\n}) => {\n let filteredLanguages = languages\n\n if (keyword) {\n filteredLanguages = new Fuse(languages, {\n keys: ['name'],\n })\n .search(keyword)\n .map((result) => result.item)\n }\n\n languagesList.innerHTML = ''\n filteredLanguages.forEach((language) => {\n const languageItem = document.createElement('li')\n languageItem.classList.add('code-block__language')\n languageItem.classList.toggle('code-block__language--active', language.name === currentLanguage)\n languageItem.innerText = language.name\n languagesList.append(languageItem)\n })\n}\n\nconst createCodeMirrorMenuDecorations = (\n found: FindProsemirrorNodeResult,\n): CodeMirrorMenuDecorations => {\n let dropInstance: Drop | undefined\n\n const handleBlurClick = (e: MouseEvent) => {\n const targetNode = e.target as HTMLElement\n if (!targetNode.classList.contains('code-block__languages__input')) {\n destroy()\n }\n }\n\n const create = (view: EditorView, getPos: () => number | undefined): HTMLElement => {\n let currentLanguage = found.node.attrs.language || ''\n if (currentLanguage === fakeIndentedLanguage) {\n currentLanguage = ''\n }\n\n const languagesList = createLanguagesList(currentLanguage)\n\n const setLanguage = (language: string) => {\n const pos = getPos()\n if (pos) {\n view.dispatch(view.state.tr.setNodeMarkup(pos, undefined, { language }))\n }\n }\n\n const reference = document.createElement('div')\n const langInput = document.createElement('input')\n reference.classList.add('code-block__reference', 'code-block__reference--active')\n langInput.classList.add('code-block__languages__input')\n\n reference.appendChild(langInput)\n langInput.value = currentLanguage\n\n langInput.addEventListener('focus', () => {\n dropInstance = new Drop({\n target: langInput,\n content: languagesList,\n position: 'bottom left',\n })\n })\n\n document.addEventListener('click', handleBlurClick, true)\n\n langInput.addEventListener('input', (e) => {\n if (e.target) {\n const value = (e.target as HTMLInputElement).value\n updateLanguagesList({ keyword: value, currentLanguage, languagesList })\n setLanguage(value)\n }\n })\n\n languagesList?.addEventListener('click', (e) => {\n currentLanguage = (e.target as HTMLElement).innerText\n setLanguage(currentLanguage)\n langInput.value = currentLanguage\n })\n\n updateLanguagesList({ keyword: currentLanguage, currentLanguage, languagesList })\n return reference\n }\n\n const destroy = () => {\n dropInstance?.destroy()\n dropInstance = undefined\n document.removeEventListener('click', handleBlurClick)\n }\n\n return {\n create,\n destroy,\n }\n}\n\nexport default createCodeMirrorMenuDecorations\n", "import type { LanguageSupport } from '@codemirror/language'\nimport type { Extension as CodeMirrorExtension } from '@codemirror/state'\nimport type { EditorView as CodeMirrorEditorView } from '@codemirror/view'\nimport type { EditorView, NodeView, ProsemirrorNode } from '@remirror/pm'\nimport MfCodemirrorView from '../../codemirror/codemirror'\n\nexport type LoadLanguage = (lang: string) => Promise<LanguageSupport> | LanguageSupport | void\n\nexport class CodeMirror6NodeView implements NodeView {\n public dom: HTMLElement\n private node: ProsemirrorNode\n private readonly view: EditorView\n private readonly getPos: () => number\n private readonly cm: CodeMirrorEditorView\n private readonly mfCodemirrorView: MfCodemirrorView\n private languageName: string\n\n constructor({\n node,\n view,\n getPos,\n extensions,\n }: {\n node: ProsemirrorNode\n view: EditorView\n getPos: () => number\n extensions: CodeMirrorExtension[] | null\n toggleName: string\n }) {\n this.node = node\n this.view = view\n this.getPos = getPos\n this.languageName = ''\n\n this.mfCodemirrorView = new MfCodemirrorView({\n view: this.view,\n getPos: this.getPos,\n node: this.node,\n extensions,\n languageName: this.languageName,\n })\n // Create a CodeMirror instance\n this.cm = this.mfCodemirrorView.cm\n\n // The editor's outer node is our DOM representation\n this.dom = this.cm.dom\n }\n\n update(node: ProsemirrorNode): boolean {\n this.node = node\n return this.mfCodemirrorView.update(node)\n }\n\n /**\n * Synchronize the selections from ProseMirror to CodeMirrror\n */\n setSelection(anchor: number, head: number): void {\n this.mfCodemirrorView.setSelection(anchor, head)\n }\n\n selectNode(): void {\n this.focus()\n }\n\n focus(): void {\n this.cm.focus()\n this.mfCodemirrorView.forwardSelection()\n }\n\n stopEvent(): boolean {\n return true\n }\n\n destroy(): void {\n this.mfCodemirrorView.destroy()\n }\n}\n", "import { useHelpers, useKeymap, useRemirrorContext, useCommands } from '@remirror/react'\n\n\nexport {\n useHelpers,\n useKeymap,\n useRemirrorContext,\n useCommands\n}\n", "import { ThemeProvider } from 'styled-components'\n\nexport * from './Editor'\n\ntype Props = {\n children?: React.ReactNode\n theme: Record<string, any>\n}\n\nexport const EditorProvider = ({ theme, children }: Props) => {\n return (\n <ThemeProvider theme={theme}>\n {children}\n </ThemeProvider>\n )\n}\n", "/* eslint-disable react-hooks/rules-of-hooks */\nimport WysiwygEditor from './WysiwygEditor'\nimport SourceEditor from './SourceEditor'\nimport { forwardRef, memo, useImperativeHandle, useMemo, useState } from 'react'\nimport type { EditorContext, EditorDelegate, EditorViewType } from '..'\nimport { useContextMounted } from './useContextMounted'\nimport type { Extension, RemirrorEventListenerProps } from 'remirror'\n\nexport type EditorRef = {\n toggleType: (targetType: EditorViewType) => void\n getType: () => EditorViewType\n}\n\nexport const Editor = memo(\n forwardRef<EditorRef, EditorProps>((props, ref) => {\n const { hooks = [], onContextMounted, ...otherProps } = props\n const [type, setType] = useState<EditorViewType>('wysiwyg')\n\n useImperativeHandle(ref, () => ({\n getType: () => type,\n toggleType: (targetType: EditorViewType) => {\n setType(targetType)\n },\n }))\n\n const editorHooks = useMemo(() => {\n return [() => useContextMounted(onContextMounted), ...hooks]\n }, [hooks, onContextMounted])\n\n return type === 'sourceCode' ? (\n <SourceEditor {...otherProps} hooks={editorHooks} />\n ) : (\n <WysiwygEditor {...otherProps} hooks={editorHooks} />\n )\n }),\n)\n\nexport type EditorChangeHandler = (\n params: RemirrorEventListenerProps<Extension>,\n content: string,\n) => void\n\nexport interface EditorProps {\n delegate?: EditorDelegate\n content: string\n isTesting?: boolean\n editable?: boolean\n offset?: {\n top: number\n left: number\n }\n onChange?: EditorChangeHandler\n hooks?: (() => void)[]\n markdownToolBar?: React.ReactNode[]\n wysiwygToolBar?: React.ReactNode[]\n onContextMounted?: (context: EditorContext) => void\n}\n", "import { useRemirrorContext } from '@remirror/react-core'\nimport type { EditorContext } from '../editor'\nimport { useEffect } from 'react'\n\nexport const useContextMounted = (onContextMounted?: (ctx: EditorContext) => void ) => {\n const remirrorContext = useRemirrorContext()\n\n\n useEffect(() => {\n if (onContextMounted) {\n onContextMounted(remirrorContext)\n }\n }, [onContextMounted, remirrorContext])\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["Empty", "__import___implementation", "__import___shams", "__import_functionBind", "undefined", "__import_hasSymbols", "__import_hasProto", "doEval", "__import_functionBind", "__import_has", "stringToPath", "getBaseIntrinsic", "__import_functionBind", "__import_getIntrinsic", "applyBind", "require_implementation", "__import___isArguments", "object", "isFunction", "isString", "__import___isArguments", "__import___implementation", "object", "__import_getIntrinsic", "hasPropertyDescriptors", "__import_objectKeys", "isFunction", "__import_hasPropertyDescriptors", "object", "__import_getIntrinsic", "__import___", "__import_getIntrinsic", "__import_callBind_callBound", "require_IsArray", "__import____helpers_IsArray", "__import_getIntrinsic", "__import_callBind_callBound", "__import___IsArray", "__import___util_inspect", "isSymbol", "isArray", "isRegExp", "isError", "isNumber", "isString", "isDate", "n", "require_Type", "__import____5_Type", "__import_getIntrinsic", "__import_objectInspect", "__import___IsPropertyKey", "__import___Type", "__import_getIntrinsic", "__import_objectInspect", "__import___IsPropertyKey", "__import_isCallable", "__import_getIntrinsic", "__import___GetV", "__import___IsCallable", "__import___IsPropertyKey", "__import_objectInspect", "require_shams", "__import_hasSymbols_shams", "__import_callBind_callBound", "__import_hasTostringtag_shams", "__import_getIntrinsic", "__import_isRegex", "__import___ToBoolean", "isRegExp", "__import_getIntrinsic", "__import_getIntrinsic", "__import____5_CheckObjectCoercible", "functionsHaveNames", "require_implementation", "__import_functionsHaveNames", "__import___implementation", "__import_defineProperties", "__import_defineProperties", "__import___polyfill", "__import_defineProperties", "__import_callBind", "__import___implementation", "__import___polyfill", "__import___shim", "__import_getIntrinsic", "__import____helpers_isLeadingSurrogate", "__import____helpers_isTrailingSurrogate", "__import_getIntrinsic", "__import_callBind_callBound", "__import____helpers_isLeadingSurrogate", "__import____helpers_isTrailingSurrogate", "__import___Type", "__import___UTF16SurrogatePairToCodePoint", "isNaN", "__import___isNaN", "__import_getIntrinsic", "__import___isNaN", "__import___isFinite", "__import_getIntrinsic", "__import_getIntrinsic", "__import___CodePointAt", "__import___Type", "__import____helpers_isInteger", "__import____helpers_maxSafeInteger", "S", "__import_getIntrinsic", "__import___Type", "__import_hasPropertyDescriptors", "__import_getIntrinsic", "isArray", "__import____helpers_IsArray", "__import_callBind_callBound", "__import_has", "__import_getIntrinsic", "__import_has", "__import___isInteger", "__import___isMatchRecord", "__import____helpers_assertRecord", "__import____helpers_fromPropertyDescriptor", "__import___Type", "__import_has", "__import___Type", "__import____helpers_assertRecord", "__import____helpers_isNaN", "__import_getIntrinsic", "__import____helpers_DefineOwnProperty", "__import___FromPropertyDescriptor", "__import___IsDataDescriptor", "__import___IsPropertyKey", "__import___SameValue", "__import___Type", "__import_getIntrinsic", "__import_callBind_callBound", "__import_objectInspect", "__import_getIntrinsic", "__import_has", "__import_sideChannel", "__import_getIntrinsic", "__import___IsArray", "__import___Type", "__import____helpers_forEach", "__import_internalSlot", "__import_hasProto", "T", "__import_getIntrinsic", "__import_callBind_callBound", "__import___Call", "__import___Get", "__import___IsCallable", "__import___Type", "S", "__import_getIntrinsic", "__import___IsPropertyKey", "__import___SameValue", "__import___Type", "Set", "__import_getIntrinsic", "__import___Type", "require_isPrimitive", "__import_hasTostringtag_shams", "__import_hasSymbols", "isSymbol", "__import___helpers_isPrimitive", "__import_isCallable", "isDate", "__import_isDateObject", "isSymbol", "__import_isSymbol", "GetMethod", "__import_esToPrimitive_es2015", "__import_callBind_callBound", "__import_getIntrinsic", "__import_isRegex", "require_implementation", "__import_esAbstract_2022_RequireObjectCoercible", "__import_esAbstract_2022_ToString", "__import_callBind_callBound", "S", "require_polyfill", "__import___implementation", "require_shim", "__import_defineProperties", "__import___polyfill", "__import_callBind", "__import_defineProperties", "__import_esAbstract_2022_RequireObjectCoercible", "__import___implementation", "__import___polyfill", "__import___shim", "import_string_prototype", "__import_getIntrinsic", "__import_callBind_callBound", "__import_safeRegexTest", "__import_string_prototype_trim", "__import___Type", "__import_getIntrinsic", "__import____helpers_isPrimitive", "__import___ToPrimitive", "__import___StringToNumber", "__import___abs", "__import___floor", "__import___ToNumber", "__import____helpers_isNaN", "__import____helpers_isFinite", "__import____helpers_sign", "__import____helpers_maxSafeInteger", "__import___ToIntegerOrInfinity", "__import_getIntrinsic", "__import_hasTostringtag_shams", "__import_has", "object", "__import_getIntrinsic", "__import_hasSymbols", "__import___AdvanceStringIndex", "__import___CreateIterResultObject", "__import___CreateMethodProperty", "__import___Get", "__import___OrdinaryObjectCreate", "__import___RegExpExec", "Set", "__import___Set", "__import___ToLength", "__import___ToString", "__import___Type", "__import_internalSlot", "__import_esSetTostringtag", "RegExpStringIterator", "S", "__import_getIntrinsic", "__import_getIntrinsic", "__import_has", "__import_has", "__import___Type", "__import____helpers_assertRecord", "__import_has", "__import_getIntrinsic", "__import___Type", "__import___ToBoolean", "__import___IsCallable", "__import_getIntrinsic", "__import____helpers_isPropertyDescriptor", "__import____helpers_DefineOwnProperty", "__import___FromPropertyDescriptor", "__import___IsAccessorDescriptor", "__import___IsDataDescriptor", "__import___IsPropertyKey", "__import___SameValue", "__import___ToPropertyDescriptor", "__import___Type", "__import____GetIntrinsic_js", "__import___DefinePropertyOrThrow", "__import_getIntrinsic", "__import___IsConstructor", "__import___Type", "S", "__import_esAbstract_2022_CreateRegExpStringIterator", "__import_esAbstract_2022_Get", "Set", "__import_esAbstract_2022_Set", "__import_esAbstract_2022_SpeciesConstructor", "__import_esAbstract_2022_ToLength", "__import_esAbstract_2022_ToString", "__import_esAbstract_2022_Type", "__import_regexp_prototype_flags", "__import_callBind_callBound", "S", "__import_hasSymbols", "__import___regexpMatchall", "require_implementation", "__import_esAbstract_2022_Call", "__import_esAbstract_2022_Get", "__import_esAbstract_2022_GetMethod", "__import_esAbstract_2022_IsRegExp", "__import_esAbstract_2022_ToString", "__import_esAbstract_2022_RequireObjectCoercible", "__import_callBind_callBound", "__import_hasSymbols", "__import_regexp_prototype_flags", "__import___polyfillRegexpMatchall", "getMatcher", "matchAll", "isRegExp", "S", "require_polyfill", "__import___implementation", "require_shim", "__import_defineProperties", "__import_hasSymbols", "__import___polyfill", "__import___polyfillRegexpMatchall", "require_string_prototype", "__import_callBind", "__import_defineProperties", "__import___implementation", "__import___polyfill", "__import___shim", "captureStackTrace", "BaseError", "setFunctionName", "properties", "isMergeableObject", "deepmerge", "object", "__import_isobject", "__import_isPlainObject", "__import_isExtendable", "omit", "isFunction", "require_object", "__import_isobject", "pick", "parser", "Remirror", "memo", "useCallback", "useMemo", "ProsemirrorDevTools", "createReactManager", "Token", "html", "Token", "isInlineToken", "rule", "__defProp", "__getOwnPropDesc", "__decorateClass", "CREATE_COMMAND_DESCRIPTION", "CREATE_COMMAND_LABEL", "TextSelection", "convertCommand", "CellSelection", "TextSelection", "CellSelection", "isTextSelection", "MarkExtension", "extension", "keyBinding", "location", "TextSelection", "Fragment", "Mark", "Step", "StepResult", "Step", "parent", "StepResult", "Mark", "Fragment", "TextSelection", "extension", "extension", "MarkExtension", "keyBinding", "extension", "isTextSelection", "PlainExtension", "view", "convertCommand", "findParentNodeOfType", "findParentNodeOfType", "convertCommand", "convertCommand", "command", "command", "extension", "helper", "PlainExtension", "Decoration", "DecorationSet", "__defProp", "__getOwnPropDesc", "__decorateClass", "escapeStringRegex", "matchAll", "NodeExtension", "isElementDomNode", "Compartment", "exitCode", "TextSelection", "nanoid", "extensions", "nanoid", "TextSelection", "exitCode", "keymap", "EditorView", "cx", "tags", "n", "attrs", "ExternalTokenizer", "LRParser", "styleTags", "tags", "dash", "parser", "values", "tags", "identifier", "callee", "node", "n", "parser", "css", "ContextTracker", "ExternalTokenizer", "LRParser", "LocalTokenGroup", "styleTags", "tags", "newline", "space", "slash", "jsx", "spec_identifier", "parser", "syntaxTree", "LRLanguage", "indentNodeProp", "continuedIndent", "foldNodeProp", "foldInside", "LanguageSupport", "EditorView", "NodeWeakMap", "IterMode", "node", "LRLanguage", "parser", "indentNodeProp", "continuedIndent", "cx", "foldNodeProp", "foldInside", "n", "LanguageSupport", "EditorView", "syntaxTree", "base", "EditorView", "EditorSelection", "syntaxTree", "LRLanguage", "indentNodeProp", "foldNodeProp", "LanguageSupport", "n", "elementName", "identifier", "LRLanguage", "indentNodeProp", "foldNodeProp", "LanguageSupport", "autoCloseTags", "css", "selfClosers", "EditorView", "syntaxTree", "elementName", "to", "base", "EditorSelection", "Compartment", "TextSelection", "Selection", "NodeExtension", "isElementDomNode", "TextSelection", "command", "ErrorConstant", "extension", "ExtensionTag", "invariant", "isElementDomNode", "isNumber", "NodeExtension", "nodeInputRule", "jsx", "styled", "useState", "ErrorConstant", "ErrorConstant2", "import_make_error", "import_object", "delay", "noTrailing", "callback", "debounceMode", "timeoutID", "cancelled", "lastExec", "clearExistingTimeout", "clearTimeout", "cancel", "undefined", "wrapper", "arguments_", "self", "elapsed", "Date", "now", "exec", "apply", "clear", "setTimeout", "isString", "ErrorConstant", "styled", "css", "jsx", "styled", "css", "jsx", "jsx", "styled", "useState", "jsx", "useEffect", "useRef", "useState", "jsx", "jsx", "NodeExtension", "ExtensionTag", "isElementDomNode", "createPlaceholder", "pos", "value", "tr", "uploadHandler", "isNumber", "nodeInputRule", "command", "extension", "parse", "invariant", "ErrorConstant", "command", "extension", "ExtensionTag", "NodeExtension", "nodeInputRule", "object", "omitExtraAttributes", "Popover", "useRef", "jsx", "Popover", "jsx", "NodeExtension", "ExtensionTag", "omitExtraAttributes", "nodeInputRule", "command", "extension", "parser", "object", "PlainExtension", "extension", "PlainExtension", "extension", "extension", "PlainExtension", "Decoration", "DecorationSet", "PlainExtension", "extension", "Decoration", "DecorationSet", "memo", "useMemo", "useCallback", "styled", "extension", "parser", "useCommands", "useEffect", "useRef", "useState", "styled", "jsx", "jsxs", "Container", "styled", "useState", "useRef", "useCommands", "useContext", "styled", "jsx", "Container", "findParentNodeOfType", "isElementDomNode", "Positioner", "hasStateChanged", "isPositionVisible", "findTable", "findCellClosestToPos", "defaultAbsolutePosition", "Fragment", "jsx", "useCommands", "useEffect", "styled", "Fragment", "jsx", "jsxs", "useRemirrorContext", "useCallback", "useEffect", "useMemo", "useRef", "useState", "memo", "useCallback", "useEffect", "useRef", "useState", "styled", "css", "useState", "memo", "styled", "jsx", "jsxs", "_", "jsx", "jsxs", "memo", "useRef", "useState", "useCallback", "useEffect", "MenuItem", "styled", "css", "Fragment", "jsx", "useRemirrorContext", "useRef", "useEffect", "useState", "useMemo", "useCallback", "jsx", "Fragment", "jsx", "jsxs", "useMemo", "useCallback", "memo", "PlainExtension", "DOMParser", "parser", "html", "slice", "n", "Decoration", "DecorationSet", "languages", "languages", "command", "extension", "findParentNodeOfType", "isElementDomNode", "isTextSelection", "keyBinding", "NodeExtension", "nodeInputRule", "setBlockType", "TextSelection", "extensions", "languages", "NodeExtension", "isElementDomNode", "nodeInputRule", "TextSelection", "isTextSelection", "setBlockType", "findParentNodeOfType", "DecorationSet", "languages", "Decoration", "keyBinding", "command", "extension", "CountExtension", "createReactManager", "jsx", "jsxs", "memo", "Remirror", "ProsemirrorDevTools", "useMemo", "useCallback", "useRemirrorContext", "useCommands", "forwardRef", "memo", "useImperativeHandle", "useMemo", "useState", "useRemirrorContext", "useEffect", "jsx", "memo", "forwardRef", "useState", "useImperativeHandle", "useMemo", "jsx"]
|
|
3
|
+
"sources": ["../node_modules/escape-string-regexp/index.js", "../node_modules/function-bind/implementation.js", "../node_modules/function-bind/index.js", "../node_modules/has-symbols/shams.js", "../node_modules/has-symbols/index.js", "../node_modules/has-proto/index.js", "../node_modules/has/src/index.js", "../node_modules/get-intrinsic/index.js", "../node_modules/call-bind/index.js", "../node_modules/object-keys/isArguments.js", "../node_modules/object-keys/implementation.js", "../node_modules/object-keys/index.js", "../node_modules/has-property-descriptors/index.js", "../node_modules/define-properties/index.js", "../node_modules/call-bind/callBound.js", "../node_modules/es-abstract/helpers/IsArray.js", "../node_modules/es-abstract/2022/IsArray.js", "../node_modules/es-abstract/2022/Call.js", "../node_modules/object-inspect/index.js", "../node_modules/es-abstract/2022/IsPropertyKey.js", "../node_modules/es-abstract/5/Type.js", "../node_modules/es-abstract/2022/Type.js", "../node_modules/es-abstract/2022/Get.js", "../node_modules/es-abstract/2022/GetV.js", "../node_modules/is-callable/index.js", "../node_modules/es-abstract/2022/IsCallable.js", "../node_modules/es-abstract/2022/GetMethod.js", "../node_modules/has-tostringtag/shams.js", "../node_modules/is-regex/index.js", "../node_modules/es-abstract/2022/ToBoolean.js", "../node_modules/es-abstract/2022/IsRegExp.js", "../node_modules/es-abstract/2022/ToString.js", "../node_modules/es-abstract/5/CheckObjectCoercible.js", "../node_modules/es-abstract/2022/RequireObjectCoercible.js", "../node_modules/functions-have-names/index.js", "../node_modules/regexp.prototype.flags/implementation.js", "../node_modules/regexp.prototype.flags/polyfill.js", "../node_modules/regexp.prototype.flags/shim.js", "../node_modules/regexp.prototype.flags/index.js", "../node_modules/es-abstract/helpers/isLeadingSurrogate.js", "../node_modules/es-abstract/helpers/isTrailingSurrogate.js", "../node_modules/es-abstract/2022/UTF16SurrogatePairToCodePoint.js", "../node_modules/es-abstract/2022/CodePointAt.js", "../node_modules/es-abstract/helpers/isNaN.js", "../node_modules/es-abstract/helpers/isFinite.js", "../node_modules/es-abstract/helpers/isInteger.js", "../node_modules/es-abstract/helpers/maxSafeInteger.js", "../node_modules/es-abstract/2022/AdvanceStringIndex.js", "../node_modules/es-abstract/2022/CreateIterResultObject.js", "../node_modules/es-abstract/helpers/DefineOwnProperty.js", "../node_modules/es-abstract/helpers/isMatchRecord.js", "../node_modules/es-abstract/helpers/assertRecord.js", "../node_modules/es-abstract/helpers/fromPropertyDescriptor.js", "../node_modules/es-abstract/2022/FromPropertyDescriptor.js", "../node_modules/es-abstract/2022/IsDataDescriptor.js", "../node_modules/es-abstract/2022/SameValue.js", "../node_modules/es-abstract/2022/CreateMethodProperty.js", "../node_modules/es-abstract/helpers/forEach.js", "../node_modules/side-channel/index.js", "../node_modules/internal-slot/index.js", "../node_modules/es-abstract/2022/OrdinaryObjectCreate.js", "../node_modules/es-abstract/2022/RegExpExec.js", "../node_modules/es-abstract/2022/Set.js", "../node_modules/es-abstract/2022/abs.js", "../node_modules/es-abstract/2022/floor.js", "../node_modules/es-abstract/helpers/isPrimitive.js", "../node_modules/es-to-primitive/helpers/isPrimitive.js", "../node_modules/is-date-object/index.js", "../node_modules/is-symbol/index.js", "../node_modules/es-to-primitive/es2015.js", "../node_modules/es-abstract/2022/ToPrimitive.js", "../node_modules/safe-regex-test/index.js", "../node_modules/string.prototype.trim/implementation.js", "../node_modules/string.prototype.trim/polyfill.js", "../node_modules/string.prototype.trim/shim.js", "../node_modules/string.prototype.trim/index.js", "../node_modules/es-abstract/2022/StringToNumber.js", "../node_modules/es-abstract/2022/ToNumber.js", "../node_modules/es-abstract/helpers/sign.js", "../node_modules/es-abstract/2022/ToIntegerOrInfinity.js", "../node_modules/es-abstract/2022/ToLength.js", "../node_modules/es-set-tostringtag/index.js", "../node_modules/es-abstract/2022/CreateRegExpStringIterator.js", "../node_modules/es-abstract/GetIntrinsic.js", "../node_modules/es-abstract/helpers/isPropertyDescriptor.js", "../node_modules/es-abstract/2022/IsAccessorDescriptor.js", "../node_modules/es-abstract/2022/ToPropertyDescriptor.js", "../node_modules/es-abstract/2022/DefinePropertyOrThrow.js", "../node_modules/es-abstract/2022/IsConstructor.js", "../node_modules/es-abstract/2022/SpeciesConstructor.js", "../node_modules/string.prototype.matchall/regexp-matchall.js", "../node_modules/string.prototype.matchall/polyfill-regexp-matchall.js", "../node_modules/string.prototype.matchall/implementation.js", "../node_modules/string.prototype.matchall/polyfill.js", "../node_modules/string.prototype.matchall/shim.js", "../node_modules/string.prototype.matchall/index.js", "../node_modules/make-error/index.js", "../node_modules/deepmerge/dist/cjs.js", "../node_modules/fast-deep-equal/index.js", "../node_modules/isobject/index.js", "../node_modules/is-extendable/node_modules/is-plain-object/index.js", "../node_modules/is-extendable/index.js", "../node_modules/object.omit/index.js", "../node_modules/object.pick/index.js", "../node_modules/querystringify/index.js", "../src/components/SourceEditor/index.tsx", "../src/components/Text/index.tsx", "../src/components/SourceEditor/delegate.ts", "../src/transform/parser.ts", "../src/transform/markdown-it-list-checkbox.ts", "../src/transform/markdown-it-html-inline.ts", "../src/utils/html.ts", "../src/extensions/Table/table-extension.ts", "../src/utils/build-block-enter-keymap.ts", "../src/extensions/index.ts", "../src/extensions/Inline/inline-deco-extension.ts", "../src/extensions/Inline/inline-mark-extensions.ts", "../src/extensions/Inline/format-href.ts", "../src/extensions/Inline/inline-mark-commands.ts", "../src/extensions/Inline/inline-mark-helpers.ts", "../src/steps/batch-mark-step.ts", "../src/steps/replace-doc-step.ts", "../src/utils/iter-node.ts", "../src/extensions/Inline/from-inline-markdown.ts", "../src/extensions/HtmlNode/html-inline-extension.ts", "../src/extensions/Inline/inline-mark-plugin.ts", "../src/extensions/Heading/heading-extension.ts", "../src/extensions/Paragraph/paragraph-extension.ts", "../src/extensions/Text/text-extension.ts", "../src/extensions/List/list-extensions.ts", "../src/extensions/BlockQuote/blockquote-extension.ts", "../src/extensions/HardBreak/hard-break-extension.ts", "../src/extensions/HorizontalRule/horizontal-rule-extension.ts", "../node_modules/@remirror/extension-find/dist/remirror-extension-find.js", "../src/utils/common.ts", "../src/extensions/HtmlNode/html-block-extension.ts", "../src/extensions/HtmlNode/html-block-view.ts", "../src/codemirror/codemirror.ts", "../src/codemirror/theme.ts", "../src/extensions/CodeMirror/setup.ts", "../node_modules/@lezer/html/dist/index.js", "../node_modules/@lezer/css/dist/index.js", "../node_modules/@codemirror/lang-css/dist/index.js", "../node_modules/@lezer/javascript/dist/index.js", "../node_modules/@codemirror/lang-javascript/dist/index.js", "../node_modules/@codemirror/lang-html/dist/index.js", "../src/extensions/CodeMirror/codemirror-utils.ts", "../src/extensions/Image/image-extension.tsx", "../src/extensions/Image/image-nodeview.tsx", "../src/extensions/Image/image-tool-tips.tsx", "../src/components/Resizable/Resizable.tsx", "../node_modules/@remirror/core-helpers/dist/remirror-core-helpers.js", "../node_modules/@remirror/core-constants/dist/remirror-core-constants.js", "../node_modules/throttle-debounce/throttle.js", "../node_modules/throttle-debounce/debounce.js", "../src/components/Resizable/ResizableHandle.tsx", "../src/extensions/Iframe/iframe-extension.tsx", "../src/extensions/Iframe/Iframe-nodeview.tsx", "../src/extensions/SlashMenu/utils.ts", "../src/extensions/SlashMenu/slashmenu-extension.ts", "../src/extensions/SlashMenu/case.ts", "../src/extensions/Placeholder/index.ts", "../src/components/WysiwygEditor/index.tsx", "../src/components/Wrapper.tsx", "../src/components/WysiwygEditor/delegate.ts", "../src/toolbar/TableToolbar/index.tsx", "../src/toolbar/TableToolbar/ActiveCellMenu.tsx", "../src/toolbar/TableToolbar/TableBar.tsx", "../src/toolbar/TableToolbar/positioner.ts", "../src/components/ErrorBoundary.tsx", "../src/toolbar/SlashMenu/index.tsx", "../src/toolbar/SlashMenu/styles.tsx", "../src/toolbar/SlashMenu/TablePanel.tsx", "../src/extensions/Clipboard/clipboard-extension.ts", "../src/transform/serializer.ts", "../src/extensions/CodeMirror/codemirror-extension.ts", "../src/extensions/CodeMirror/codemirror-lang-menu.tsx", "../src/extensions/CodeMirror/codemirror-node-view.ts", "../src/hooks/index.ts", "../src/components/index.tsx", "../src/components/Editor.tsx", "../src/components/useContextMounted.tsx"],
|
|
4
|
+
"sourcesContent": ["'use strict';\n\nmodule.exports = string => {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it\u2019s always valid, and a \\unnnn escape when the simpler form would be disallowed by Unicode patterns\u2019 stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n};\n", "'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n", "import __import___implementation from \"./implementation\";'use strict';\n\nvar implementation = __import___implementation;\n\nmodule.exports = Function.prototype.bind || implementation;\n", "'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n", "import __import___shams from \"./shams\";'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = __import___shams;\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n", "'use strict';\n\nvar test = {\n\tfoo: {}\n};\n\nvar $Object = Object;\n\nmodule.exports = function hasProto() {\n\treturn { __proto__: test }.foo === test.foo && !({ __proto__: null } instanceof $Object);\n};\n", "import __import_functionBind from \"function-bind\";'use strict';\n\nvar bind = __import_functionBind;\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n", "import __import_hasSymbols from \"has-symbols\";import __import_hasProto from \"has-proto\";import __import_functionBind from \"function-bind\";import __import_has from \"has\";'use strict';\n\nvar undefined;\n\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = __import_hasSymbols();\nvar hasProto = __import_hasProto();\n\nvar getProto = Object.getPrototypeOf || (\n\thasProto\n\t\t? function (x) { return x.__proto__; } // eslint-disable-line no-proto\n\t\t: null\n);\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%ReferenceError%': ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = __import_functionBind;\nvar hasOwn = __import_has;\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\nvar $exec = bind.call(Function.call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n", "import __import_functionBind from \"function-bind\";import __import_getIntrinsic from \"get-intrinsic\";'use strict';\n\nvar bind = __import_functionBind;\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = $reflectApply(bind, $call, arguments);\n\tif ($gOPD && $defineProperty) {\n\t\tvar desc = $gOPD(func, 'length');\n\t\tif (desc.configurable) {\n\t\t\t// original length, plus the receiver, minus any additional arguments (after the receiver)\n\t\t\t$defineProperty(\n\t\t\t\tfunc,\n\t\t\t\t'length',\n\t\t\t\t{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }\n\t\t\t);\n\t\t}\n\t}\n\treturn func;\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n", "'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n", "import __import___isArguments from \"./isArguments\";'use strict';\n\nvar keysShim;\nif (!Object.keys) {\n\t// modified from https://github.com/es-shims/es5-shim\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\tvar isArgs = __import___isArguments; // eslint-disable-line global-require\n\tvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\tvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n\tvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n\tvar dontEnums = [\n\t\t'toString',\n\t\t'toLocaleString',\n\t\t'valueOf',\n\t\t'hasOwnProperty',\n\t\t'isPrototypeOf',\n\t\t'propertyIsEnumerable',\n\t\t'constructor'\n\t];\n\tvar equalsConstructorPrototype = function (o) {\n\t\tvar ctor = o.constructor;\n\t\treturn ctor && ctor.prototype === o;\n\t};\n\tvar excludedKeys = {\n\t\t$applicationCache: true,\n\t\t$console: true,\n\t\t$external: true,\n\t\t$frame: true,\n\t\t$frameElement: true,\n\t\t$frames: true,\n\t\t$innerHeight: true,\n\t\t$innerWidth: true,\n\t\t$onmozfullscreenchange: true,\n\t\t$onmozfullscreenerror: true,\n\t\t$outerHeight: true,\n\t\t$outerWidth: true,\n\t\t$pageXOffset: true,\n\t\t$pageYOffset: true,\n\t\t$parent: true,\n\t\t$scrollLeft: true,\n\t\t$scrollTop: true,\n\t\t$scrollX: true,\n\t\t$scrollY: true,\n\t\t$self: true,\n\t\t$webkitIndexedDB: true,\n\t\t$webkitStorageInfo: true,\n\t\t$window: true\n\t};\n\tvar hasAutomationEqualityBug = (function () {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined') { return false; }\n\t\tfor (var k in window) {\n\t\t\ttry {\n\t\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}());\n\tvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t}\n\t\ttry {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tkeysShim = function keys(object) {\n\t\tvar isObject = object !== null && typeof object === 'object';\n\t\tvar isFunction = toStr.call(object) === '[object Function]';\n\t\tvar isArguments = isArgs(object);\n\t\tvar isString = isObject && toStr.call(object) === '[object String]';\n\t\tvar theKeys = [];\n\n\t\tif (!isObject && !isFunction && !isArguments) {\n\t\t\tthrow new TypeError('Object.keys called on a non-object');\n\t\t}\n\n\t\tvar skipProto = hasProtoEnumBug && isFunction;\n\t\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n", "import __import___isArguments from \"./isArguments\";import __import___implementation from \"./implementation\";'use strict';\n\nvar slice = Array.prototype.slice;\nvar isArgs = __import___isArguments;\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : __import___implementation;\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) { // eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n", "import __import_getIntrinsic from \"get-intrinsic\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\tif ($defineProperty) {\n\t\ttry {\n\t\t\t$defineProperty({}, 'a', { value: 1 });\n\t\t\treturn true;\n\t\t} catch (e) {\n\t\t\t// IE 8 has a broken defineProperty\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn false;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!hasPropertyDescriptors()) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n", "import __import_objectKeys from \"object-keys\";import __import_hasPropertyDescriptors from \"has-property-descriptors\";'use strict';\n\nvar keys = __import_objectKeys;\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar origDefineProperty = Object.defineProperty;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar hasPropertyDescriptors = __import_hasPropertyDescriptors();\n\nvar supportsDescriptors = origDefineProperty && hasPropertyDescriptors;\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object) {\n\t\tif (predicate === true) {\n\t\t\tif (object[name] === value) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else if (!isFunction(predicate) || !predicate()) {\n\t\t\treturn;\n\t\t}\n\t}\n\tif (supportsDescriptors) {\n\t\torigDefineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: value,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\tobject[name] = value; // eslint-disable-line no-param-reassign\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import___ from \"./\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar callBind = __import___;\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import_callBind_callBound from \"call-bind/callBound\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $Array = GetIntrinsic('%Array%');\n\n// eslint-disable-next-line global-require\nvar toStr = !$Array.isArray && __import_callBind_callBound('Object.prototype.toString');\n\nmodule.exports = $Array.isArray || function IsArray(argument) {\n\treturn toStr(argument) === '[object Array]';\n};\n", "import __import____helpers_IsArray from \"../helpers/IsArray\";'use strict';\n\n// https://262.ecma-international.org/6.0/#sec-isarray\nmodule.exports = __import____helpers_IsArray;\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import_callBind_callBound from \"call-bind/callBound\";import __import___IsArray from \"./IsArray\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\nvar callBound = __import_callBind_callBound;\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar IsArray = __import___IsArray;\n\nvar $apply = GetIntrinsic('%Reflect.apply%', true) || callBound('Function.prototype.apply');\n\n// https://262.ecma-international.org/6.0/#sec-call\n\nmodule.exports = function Call(F, V) {\n\tvar argumentsList = arguments.length > 2 ? arguments[2] : [];\n\tif (!IsArray(argumentsList)) {\n\t\tthrow new $TypeError('Assertion failed: optional `argumentsList`, if provided, must be a List');\n\t}\n\treturn $apply(F, V, argumentsList);\n};\n", "import __import___util_inspect from \"./util.inspect\";var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar $match = String.prototype.match;\nvar $slice = String.prototype.slice;\nvar $replace = String.prototype.replace;\nvar $toUpperCase = String.prototype.toUpperCase;\nvar $toLowerCase = String.prototype.toLowerCase;\nvar $test = RegExp.prototype.test;\nvar $concat = Array.prototype.concat;\nvar $join = Array.prototype.join;\nvar $arrSlice = Array.prototype.slice;\nvar $floor = Math.floor;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\n// ie, `has-tostringtag/shams\nvar toStringTag = typeof Symbol === 'function' && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? 'object' : 'symbol')\n ? Symbol.toStringTag\n : null;\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (\n [].__proto__ === Array.prototype // eslint-disable-line no-proto\n ? function (O) {\n return O.__proto__; // eslint-disable-line no-proto\n }\n : null\n);\n\nfunction addNumericSeparator(num, str) {\n if (\n num === Infinity\n || num === -Infinity\n || num !== num\n || (num && num > -1000 && num < 1000)\n || $test.call(/e/, str)\n ) {\n return str;\n }\n var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;\n if (typeof num === 'number') {\n var int = num < 0 ? -$floor(-num) : $floor(num); // trunc(num)\n if (int !== num) {\n var intStr = String(int);\n var dec = $slice.call(str, intStr.length + 1);\n return $replace.call(intStr, sepRegex, '$&_') + '.' + $replace.call($replace.call(dec, /([0-9]{3})/g, '$&_'), /_$/, '');\n }\n }\n return $replace.call(str, sepRegex, '$&_');\n}\n\nvar utilInspect = __import___util_inspect;\nvar inspectCustom = utilInspect.custom;\nvar inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null;\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n var opts = options || {};\n\n if (has(opts, 'quoteStyle') && (opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double')) {\n throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n }\n if (\n has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'\n ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity\n : opts.maxStringLength !== null\n )\n ) {\n throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n }\n var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n }\n\n if (\n has(opts, 'indent')\n && opts.indent !== null\n && opts.indent !== '\\t'\n && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)\n ) {\n throw new TypeError('option \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n }\n if (has(opts, 'numericSeparator') && typeof opts.numericSeparator !== 'boolean') {\n throw new TypeError('option \"numericSeparator\", if provided, must be `true` or `false`');\n }\n var numericSeparator = opts.numericSeparator;\n\n if (typeof obj === 'undefined') {\n return 'undefined';\n }\n if (obj === null) {\n return 'null';\n }\n if (typeof obj === 'boolean') {\n return obj ? 'true' : 'false';\n }\n\n if (typeof obj === 'string') {\n return inspectString(obj, opts);\n }\n if (typeof obj === 'number') {\n if (obj === 0) {\n return Infinity / obj > 0 ? '0' : '-0';\n }\n var str = String(obj);\n return numericSeparator ? addNumericSeparator(obj, str) : str;\n }\n if (typeof obj === 'bigint') {\n var bigIntStr = String(obj) + 'n';\n return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;\n }\n\n var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n if (typeof depth === 'undefined') { depth = 0; }\n if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n return isArray(obj) ? '[Array]' : '[Object]';\n }\n\n var indent = getIndent(opts, depth);\n\n if (typeof seen === 'undefined') {\n seen = [];\n } else if (indexOf(seen, obj) >= 0) {\n return '[Circular]';\n }\n\n function inspect(value, from, noIndent) {\n if (from) {\n seen = $arrSlice.call(seen);\n seen.push(from);\n }\n if (noIndent) {\n var newOpts = {\n depth: opts.depth\n };\n if (has(opts, 'quoteStyle')) {\n newOpts.quoteStyle = opts.quoteStyle;\n }\n return inspect_(value, newOpts, depth + 1, seen);\n }\n return inspect_(value, opts, depth + 1, seen);\n }\n\n if (typeof obj === 'function' && !isRegExp(obj)) { // in older engines, regexes are callable\n var name = nameOf(obj);\n var keys = arrObjKeys(obj, inspect);\n return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + $join.call(keys, ', ') + ' }' : '');\n }\n if (isSymbol(obj)) {\n var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n }\n if (isElement(obj)) {\n var s = '<' + $toLowerCase.call(String(obj.nodeName));\n var attrs = obj.attributes || [];\n for (var i = 0; i < attrs.length; i++) {\n s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n }\n s += '>';\n if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n s += '</' + $toLowerCase.call(String(obj.nodeName)) + '>';\n return s;\n }\n if (isArray(obj)) {\n if (obj.length === 0) { return '[]'; }\n var xs = arrObjKeys(obj, inspect);\n if (indent && !singleLineValues(xs)) {\n return '[' + indentedJoin(xs, indent) + ']';\n }\n return '[ ' + $join.call(xs, ', ') + ' ]';\n }\n if (isError(obj)) {\n var parts = arrObjKeys(obj, inspect);\n if (!('cause' in Error.prototype) && 'cause' in obj && !isEnumerable.call(obj, 'cause')) {\n return '{ [' + String(obj) + '] ' + $join.call($concat.call('[cause]: ' + inspect(obj.cause), parts), ', ') + ' }';\n }\n if (parts.length === 0) { return '[' + String(obj) + ']'; }\n return '{ [' + String(obj) + '] ' + $join.call(parts, ', ') + ' }';\n }\n if (typeof obj === 'object' && customInspect) {\n if (inspectSymbol && typeof obj[inspectSymbol] === 'function' && utilInspect) {\n return utilInspect(obj, { depth: maxDepth - depth });\n } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n return obj.inspect();\n }\n }\n if (isMap(obj)) {\n var mapParts = [];\n if (mapForEach) {\n mapForEach.call(obj, function (value, key) {\n mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n });\n }\n return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n }\n if (isSet(obj)) {\n var setParts = [];\n if (setForEach) {\n setForEach.call(obj, function (value) {\n setParts.push(inspect(value, obj));\n });\n }\n return collectionOf('Set', setSize.call(obj), setParts, indent);\n }\n if (isWeakMap(obj)) {\n return weakCollectionOf('WeakMap');\n }\n if (isWeakSet(obj)) {\n return weakCollectionOf('WeakSet');\n }\n if (isWeakRef(obj)) {\n return weakCollectionOf('WeakRef');\n }\n if (isNumber(obj)) {\n return markBoxed(inspect(Number(obj)));\n }\n if (isBigInt(obj)) {\n return markBoxed(inspect(bigIntValueOf.call(obj)));\n }\n if (isBoolean(obj)) {\n return markBoxed(booleanValueOf.call(obj));\n }\n if (isString(obj)) {\n return markBoxed(inspect(String(obj)));\n }\n if (!isDate(obj) && !isRegExp(obj)) {\n var ys = arrObjKeys(obj, inspect);\n var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n var protoTag = obj instanceof Object ? '' : 'null prototype';\n var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? 'Object' : '';\n var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n var tag = constructorTag + (stringTag || protoTag ? '[' + $join.call($concat.call([], stringTag || [], protoTag || []), ': ') + '] ' : '');\n if (ys.length === 0) { return tag + '{}'; }\n if (indent) {\n return tag + '{' + indentedJoin(ys, indent) + '}';\n }\n return tag + '{ ' + $join.call(ys, ', ') + ' }';\n }\n return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '\"' : \"'\";\n return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n return $replace.call(String(s), /\"/g, '"');\n}\n\nfunction isArray(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isDate(obj) { return toStr(obj) === '[object Date]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isError(obj) { return toStr(obj) === '[object Error]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isString(obj) { return toStr(obj) === '[object String]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\n\n// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\nfunction isSymbol(obj) {\n if (hasShammedSymbols) {\n return obj && typeof obj === 'object' && obj instanceof Symbol;\n }\n if (typeof obj === 'symbol') {\n return true;\n }\n if (!obj || typeof obj !== 'object' || !symToString) {\n return false;\n }\n try {\n symToString.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isBigInt(obj) {\n if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n return false;\n }\n try {\n bigIntValueOf.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n if (f.name) { return f.name; }\n var m = $match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n if (m) { return m[1]; }\n return null;\n}\n\nfunction indexOf(xs, x) {\n if (xs.indexOf) { return xs.indexOf(x); }\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) { return i; }\n }\n return -1;\n}\n\nfunction isMap(x) {\n if (!mapSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n mapSize.call(x);\n try {\n setSize.call(x);\n } catch (s) {\n return true;\n }\n return x instanceof Map; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakMap(x) {\n if (!weakMapHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakMapHas.call(x, weakMapHas);\n try {\n weakSetHas.call(x, weakSetHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakRef(x) {\n if (!weakRefDeref || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakRefDeref.call(x);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isSet(x) {\n if (!setSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n setSize.call(x);\n try {\n mapSize.call(x);\n } catch (m) {\n return true;\n }\n return x instanceof Set; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakSet(x) {\n if (!weakSetHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakSetHas.call(x, weakSetHas);\n try {\n weakMapHas.call(x, weakMapHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isElement(x) {\n if (!x || typeof x !== 'object') { return false; }\n if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n return true;\n }\n return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n if (str.length > opts.maxStringLength) {\n var remaining = str.length - opts.maxStringLength;\n var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;\n }\n // eslint-disable-next-line no-control-regex\n var s = $replace.call($replace.call(str, /(['\\\\])/g, '\\\\$1'), /[\\x00-\\x1f]/g, lowbyte);\n return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n var n = c.charCodeAt(0);\n var x = {\n 8: 'b',\n 9: 't',\n 10: 'n',\n 12: 'f',\n 13: 'r'\n }[n];\n if (x) { return '\\\\' + x; }\n return '\\\\x' + (n < 0x10 ? '0' : '') + $toUpperCase.call(n.toString(16));\n}\n\nfunction markBoxed(str) {\n return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ', ');\n return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n for (var i = 0; i < xs.length; i++) {\n if (indexOf(xs[i], '\\n') >= 0) {\n return false;\n }\n }\n return true;\n}\n\nfunction getIndent(opts, depth) {\n var baseIndent;\n if (opts.indent === '\\t') {\n baseIndent = '\\t';\n } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n baseIndent = $join.call(Array(opts.indent + 1), ' ');\n } else {\n return null;\n }\n return {\n base: baseIndent,\n prev: $join.call(Array(depth + 1), baseIndent)\n };\n}\n\nfunction indentedJoin(xs, indent) {\n if (xs.length === 0) { return ''; }\n var lineJoiner = '\\n' + indent.prev + indent.base;\n return lineJoiner + $join.call(xs, ',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n var isArr = isArray(obj);\n var xs = [];\n if (isArr) {\n xs.length = obj.length;\n for (var i = 0; i < obj.length; i++) {\n xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n }\n }\n var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n var symMap;\n if (hasShammedSymbols) {\n symMap = {};\n for (var k = 0; k < syms.length; k++) {\n symMap['$' + syms[k]] = syms[k];\n }\n }\n\n for (var key in obj) { // eslint-disable-line no-restricted-syntax\n if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n continue; // eslint-disable-line no-restricted-syntax, no-continue\n } else if ($test.call(/[^\\w$]/, key)) {\n xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n } else {\n xs.push(key + ': ' + inspect(obj[key], obj));\n }\n }\n if (typeof gOPS === 'function') {\n for (var j = 0; j < syms.length; j++) {\n if (isEnumerable.call(obj, syms[j])) {\n xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n }\n }\n }\n return xs;\n}\n", "'use strict';\n\n// https://262.ecma-international.org/6.0/#sec-ispropertykey\n\nmodule.exports = function IsPropertyKey(argument) {\n\treturn typeof argument === 'string' || typeof argument === 'symbol';\n};\n", "'use strict';\n\n// https://262.ecma-international.org/5.1/#sec-8\n\nmodule.exports = function Type(x) {\n\tif (x === null) {\n\t\treturn 'Null';\n\t}\n\tif (typeof x === 'undefined') {\n\t\treturn 'Undefined';\n\t}\n\tif (typeof x === 'function' || typeof x === 'object') {\n\t\treturn 'Object';\n\t}\n\tif (typeof x === 'number') {\n\t\treturn 'Number';\n\t}\n\tif (typeof x === 'boolean') {\n\t\treturn 'Boolean';\n\t}\n\tif (typeof x === 'string') {\n\t\treturn 'String';\n\t}\n};\n", "import __import____5_Type from \"../5/Type\";'use strict';\n\nvar ES5Type = __import____5_Type;\n\n// https://262.ecma-international.org/11.0/#sec-ecmascript-data-types-and-values\n\nmodule.exports = function Type(x) {\n\tif (typeof x === 'symbol') {\n\t\treturn 'Symbol';\n\t}\n\tif (typeof x === 'bigint') {\n\t\treturn 'BigInt';\n\t}\n\treturn ES5Type(x);\n};\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import_objectInspect from \"object-inspect\";import __import___IsPropertyKey from \"./IsPropertyKey\";import __import___Type from \"./Type\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar inspect = __import_objectInspect;\n\nvar IsPropertyKey = __import___IsPropertyKey;\nvar Type = __import___Type;\n\n// https://262.ecma-international.org/6.0/#sec-get-o-p\n\nmodule.exports = function Get(O, P) {\n\t// 7.3.1.1\n\tif (Type(O) !== 'Object') {\n\t\tthrow new $TypeError('Assertion failed: Type(O) is not Object');\n\t}\n\t// 7.3.1.2\n\tif (!IsPropertyKey(P)) {\n\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true, got ' + inspect(P));\n\t}\n\t// 7.3.1.3\n\treturn O[P];\n};\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import_objectInspect from \"object-inspect\";import __import___IsPropertyKey from \"./IsPropertyKey\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar inspect = __import_objectInspect;\n\nvar IsPropertyKey = __import___IsPropertyKey;\n// var ToObject = require('./ToObject');\n\n// https://262.ecma-international.org/6.0/#sec-getv\n\nmodule.exports = function GetV(V, P) {\n\t// 7.3.2.1\n\tif (!IsPropertyKey(P)) {\n\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true, got ' + inspect(P));\n\t}\n\n\t// 7.3.2.2-3\n\t// var O = ToObject(V);\n\n\t// 7.3.2.4\n\treturn V[P];\n};\n", "'use strict';\n\nvar fnToStr = Function.prototype.toString;\nvar reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;\nvar badArrayLike;\nvar isCallableMarker;\nif (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {\n\ttry {\n\t\tbadArrayLike = Object.defineProperty({}, 'length', {\n\t\t\tget: function () {\n\t\t\t\tthrow isCallableMarker;\n\t\t\t}\n\t\t});\n\t\tisCallableMarker = {};\n\t\t// eslint-disable-next-line no-throw-literal\n\t\treflectApply(function () { throw 42; }, null, badArrayLike);\n\t} catch (_) {\n\t\tif (_ !== isCallableMarker) {\n\t\t\treflectApply = null;\n\t\t}\n\t}\n} else {\n\treflectApply = null;\n}\n\nvar constructorRegex = /^\\s*class\\b/;\nvar isES6ClassFn = function isES6ClassFunction(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\treturn constructorRegex.test(fnStr);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar objectClass = '[object Object]';\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar ddaClass = '[object HTMLAllCollection]'; // IE 11\nvar ddaClass2 = '[object HTML document.all class]';\nvar ddaClass3 = '[object HTMLCollection]'; // IE 9-10\nvar hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag`\n\nvar isIE68 = !(0 in [,]); // eslint-disable-line no-sparse-arrays, comma-spacing\n\nvar isDDA = function isDocumentDotAll() { return false; };\nif (typeof document === 'object') {\n\t// Firefox 3 canonicalizes DDA to undefined when it's not accessed directly\n\tvar all = document.all;\n\tif (toStr.call(all) === toStr.call(document.all)) {\n\t\tisDDA = function isDocumentDotAll(value) {\n\t\t\t/* globals document: false */\n\t\t\t// in IE 6-8, typeof document.all is \"object\" and it's truthy\n\t\t\tif ((isIE68 || !value) && (typeof value === 'undefined' || typeof value === 'object')) {\n\t\t\t\ttry {\n\t\t\t\t\tvar str = toStr.call(value);\n\t\t\t\t\treturn (\n\t\t\t\t\t\tstr === ddaClass\n\t\t\t\t\t\t|| str === ddaClass2\n\t\t\t\t\t\t|| str === ddaClass3 // opera 12.16\n\t\t\t\t\t\t|| str === objectClass // IE 6-8\n\t\t\t\t\t) && value('') == null; // eslint-disable-line eqeqeq\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\t}\n}\n\nmodule.exports = reflectApply\n\t? function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\ttry {\n\t\t\treflectApply(value, null, badArrayLike);\n\t\t} catch (e) {\n\t\t\tif (e !== isCallableMarker) { return false; }\n\t\t}\n\t\treturn !isES6ClassFn(value) && tryFunctionObject(value);\n\t}\n\t: function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\tif (hasToStringTag) { return tryFunctionObject(value); }\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tvar strClass = toStr.call(value);\n\t\tif (strClass !== fnClass && strClass !== genClass && !(/^\\[object HTML/).test(strClass)) { return false; }\n\t\treturn tryFunctionObject(value);\n\t};\n", "import __import_isCallable from \"is-callable\";'use strict';\n\n// http://262.ecma-international.org/5.1/#sec-9.11\n\nmodule.exports = __import_isCallable;\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import___GetV from \"./GetV\";import __import___IsCallable from \"./IsCallable\";import __import___IsPropertyKey from \"./IsPropertyKey\";import __import_objectInspect from \"object-inspect\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar GetV = __import___GetV;\nvar IsCallable = __import___IsCallable;\nvar IsPropertyKey = __import___IsPropertyKey;\n\nvar inspect = __import_objectInspect;\n\n// https://262.ecma-international.org/6.0/#sec-getmethod\n\nmodule.exports = function GetMethod(O, P) {\n\t// 7.3.9.1\n\tif (!IsPropertyKey(P)) {\n\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t}\n\n\t// 7.3.9.2\n\tvar func = GetV(O, P);\n\n\t// 7.3.9.4\n\tif (func == null) {\n\t\treturn void 0;\n\t}\n\n\t// 7.3.9.5\n\tif (!IsCallable(func)) {\n\t\tthrow new $TypeError(inspect(P) + ' is not a function: ' + inspect(func));\n\t}\n\n\t// 7.3.9.6\n\treturn func;\n};\n", "import __import_hasSymbols_shams from \"has-symbols/shams\";'use strict';\n\nvar hasSymbols = __import_hasSymbols_shams;\n\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n", "import __import_callBind_callBound from \"call-bind/callBound\";import __import_hasTostringtag_shams from \"has-tostringtag/shams\";'use strict';\n\nvar callBound = __import_callBind_callBound;\nvar hasToStringTag = __import_hasTostringtag_shams();\nvar has;\nvar $exec;\nvar isRegexMarker;\nvar badStringifier;\n\nif (hasToStringTag) {\n\thas = callBound('Object.prototype.hasOwnProperty');\n\t$exec = callBound('RegExp.prototype.exec');\n\tisRegexMarker = {};\n\n\tvar throwRegexMarker = function () {\n\t\tthrow isRegexMarker;\n\t};\n\tbadStringifier = {\n\t\ttoString: throwRegexMarker,\n\t\tvalueOf: throwRegexMarker\n\t};\n\n\tif (typeof Symbol.toPrimitive === 'symbol') {\n\t\tbadStringifier[Symbol.toPrimitive] = throwRegexMarker;\n\t}\n}\n\nvar $toString = callBound('Object.prototype.toString');\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar regexClass = '[object RegExp]';\n\nmodule.exports = hasToStringTag\n\t// eslint-disable-next-line consistent-return\n\t? function isRegex(value) {\n\t\tif (!value || typeof value !== 'object') {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar descriptor = gOPD(value, 'lastIndex');\n\t\tvar hasLastIndexDataProperty = descriptor && has(descriptor, 'value');\n\t\tif (!hasLastIndexDataProperty) {\n\t\t\treturn false;\n\t\t}\n\n\t\ttry {\n\t\t\t$exec(value, badStringifier);\n\t\t} catch (e) {\n\t\t\treturn e === isRegexMarker;\n\t\t}\n\t}\n\t: function isRegex(value) {\n\t\t// In older browsers, typeof regex incorrectly returns 'function'\n\t\tif (!value || (typeof value !== 'object' && typeof value !== 'function')) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn $toString(value) === regexClass;\n\t};\n", "'use strict';\n\n// http://262.ecma-international.org/5.1/#sec-9.2\n\nmodule.exports = function ToBoolean(value) { return !!value; };\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import_isRegex from \"is-regex\";import __import___ToBoolean from \"./ToBoolean\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $match = GetIntrinsic('%Symbol.match%', true);\n\nvar hasRegExpMatcher = __import_isRegex;\n\nvar ToBoolean = __import___ToBoolean;\n\n// https://262.ecma-international.org/6.0/#sec-isregexp\n\nmodule.exports = function IsRegExp(argument) {\n\tif (!argument || typeof argument !== 'object') {\n\t\treturn false;\n\t}\n\tif ($match) {\n\t\tvar isRegExp = argument[$match];\n\t\tif (typeof isRegExp !== 'undefined') {\n\t\t\treturn ToBoolean(isRegExp);\n\t\t}\n\t}\n\treturn hasRegExpMatcher(argument);\n};\n", "import __import_getIntrinsic from \"get-intrinsic\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $String = GetIntrinsic('%String%');\nvar $TypeError = GetIntrinsic('%TypeError%');\n\n// https://262.ecma-international.org/6.0/#sec-tostring\n\nmodule.exports = function ToString(argument) {\n\tif (typeof argument === 'symbol') {\n\t\tthrow new $TypeError('Cannot convert a Symbol value to a string');\n\t}\n\treturn $String(argument);\n};\n", "import __import_getIntrinsic from \"get-intrinsic\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\n// http://262.ecma-international.org/5.1/#sec-9.10\n\nmodule.exports = function CheckObjectCoercible(value, optMessage) {\n\tif (value == null) {\n\t\tthrow new $TypeError(optMessage || ('Cannot call method on ' + value));\n\t}\n\treturn value;\n};\n", "import __import____5_CheckObjectCoercible from \"../5/CheckObjectCoercible\";'use strict';\n\nmodule.exports = __import____5_CheckObjectCoercible;\n", "'use strict';\n\nvar functionsHaveNames = function functionsHaveNames() {\n\treturn typeof function f() {}.name === 'string';\n};\n\nvar gOPD = Object.getOwnPropertyDescriptor;\nif (gOPD) {\n\ttry {\n\t\tgOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\tgOPD = null;\n\t}\n}\n\nfunctionsHaveNames.functionsHaveConfigurableNames = function functionsHaveConfigurableNames() {\n\tif (!functionsHaveNames() || !gOPD) {\n\t\treturn false;\n\t}\n\tvar desc = gOPD(function () {}, 'name');\n\treturn !!desc && !!desc.configurable;\n};\n\nvar $bind = Function.prototype.bind;\n\nfunctionsHaveNames.boundFunctionsHaveNames = function boundFunctionsHaveNames() {\n\treturn functionsHaveNames() && typeof $bind === 'function' && function f() {}.bind().name !== '';\n};\n\nmodule.exports = functionsHaveNames;\n", "import __import_functionsHaveNames from \"functions-have-names\";'use strict';\n\nvar functionsHaveConfigurableNames = __import_functionsHaveNames.functionsHaveConfigurableNames();\n\nvar $Object = Object;\nvar $TypeError = TypeError;\n\nmodule.exports = function flags() {\n\tif (this != null && this !== $Object(this)) {\n\t\tthrow new $TypeError('RegExp.prototype.flags getter called on non-object');\n\t}\n\tvar result = '';\n\tif (this.hasIndices) {\n\t\tresult += 'd';\n\t}\n\tif (this.global) {\n\t\tresult += 'g';\n\t}\n\tif (this.ignoreCase) {\n\t\tresult += 'i';\n\t}\n\tif (this.multiline) {\n\t\tresult += 'm';\n\t}\n\tif (this.dotAll) {\n\t\tresult += 's';\n\t}\n\tif (this.unicode) {\n\t\tresult += 'u';\n\t}\n\tif (this.unicodeSets) {\n\t\tresult += 'v';\n\t}\n\tif (this.sticky) {\n\t\tresult += 'y';\n\t}\n\treturn result;\n};\n\nif (functionsHaveConfigurableNames && Object.defineProperty) {\n\tObject.defineProperty(module.exports, 'name', { value: 'get flags' });\n}\n", "import __import___implementation from \"./implementation\";import __import_defineProperties from \"define-properties\";'use strict';\n\nvar implementation = __import___implementation;\n\nvar supportsDescriptors = __import_defineProperties.supportsDescriptors;\nvar $gOPD = Object.getOwnPropertyDescriptor;\n\nmodule.exports = function getPolyfill() {\n\tif (supportsDescriptors && (/a/mig).flags === 'gim') {\n\t\tvar descriptor = $gOPD(RegExp.prototype, 'flags');\n\t\tif (\n\t\t\tdescriptor\n\t\t\t&& typeof descriptor.get === 'function'\n\t\t\t&& typeof RegExp.prototype.dotAll === 'boolean'\n\t\t\t&& typeof RegExp.prototype.hasIndices === 'boolean'\n\t\t) {\n\t\t\t/* eslint getter-return: 0 */\n\t\t\tvar calls = '';\n\t\t\tvar o = {};\n\t\t\tObject.defineProperty(o, 'hasIndices', {\n\t\t\t\tget: function () {\n\t\t\t\t\tcalls += 'd';\n\t\t\t\t}\n\t\t\t});\n\t\t\tObject.defineProperty(o, 'sticky', {\n\t\t\t\tget: function () {\n\t\t\t\t\tcalls += 'y';\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (calls === 'dy') {\n\t\t\t\treturn descriptor.get;\n\t\t\t}\n\t\t}\n\t}\n\treturn implementation;\n};\n", "import __import_defineProperties from \"define-properties\";import __import___polyfill from \"./polyfill\";'use strict';\n\nvar supportsDescriptors = __import_defineProperties.supportsDescriptors;\nvar getPolyfill = __import___polyfill;\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar TypeErr = TypeError;\nvar getProto = Object.getPrototypeOf;\nvar regex = /a/;\n\nmodule.exports = function shimFlags() {\n\tif (!supportsDescriptors || !getProto) {\n\t\tthrow new TypeErr('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors');\n\t}\n\tvar polyfill = getPolyfill();\n\tvar proto = getProto(regex);\n\tvar descriptor = gOPD(proto, 'flags');\n\tif (!descriptor || descriptor.get !== polyfill) {\n\t\tdefineProperty(proto, 'flags', {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tget: polyfill\n\t\t});\n\t}\n\treturn polyfill;\n};\n", "import __import_defineProperties from \"define-properties\";import __import_callBind from \"call-bind\";import __import___implementation from \"./implementation\";import __import___polyfill from \"./polyfill\";import __import___shim from \"./shim\";'use strict';\n\nvar define = __import_defineProperties;\nvar callBind = __import_callBind;\n\nvar implementation = __import___implementation;\nvar getPolyfill = __import___polyfill;\nvar shim = __import___shim;\n\nvar flagsBound = callBind(getPolyfill());\n\ndefine(flagsBound, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = flagsBound;\n", "'use strict';\n\nmodule.exports = function isLeadingSurrogate(charCode) {\n\treturn typeof charCode === 'number' && charCode >= 0xD800 && charCode <= 0xDBFF;\n};\n", "'use strict';\n\nmodule.exports = function isTrailingSurrogate(charCode) {\n\treturn typeof charCode === 'number' && charCode >= 0xDC00 && charCode <= 0xDFFF;\n};\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import____helpers_isLeadingSurrogate from \"../helpers/isLeadingSurrogate\";import __import____helpers_isTrailingSurrogate from \"../helpers/isTrailingSurrogate\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $fromCharCode = GetIntrinsic('%String.fromCharCode%');\n\nvar isLeadingSurrogate = __import____helpers_isLeadingSurrogate;\nvar isTrailingSurrogate = __import____helpers_isTrailingSurrogate;\n\n// https://tc39.es/ecma262/2020/#sec-utf16decodesurrogatepair\n\nmodule.exports = function UTF16SurrogatePairToCodePoint(lead, trail) {\n\tif (!isLeadingSurrogate(lead) || !isTrailingSurrogate(trail)) {\n\t\tthrow new $TypeError('Assertion failed: `lead` must be a leading surrogate char code, and `trail` must be a trailing surrogate char code');\n\t}\n\t// var cp = (lead - 0xD800) * 0x400 + (trail - 0xDC00) + 0x10000;\n\treturn $fromCharCode(lead) + $fromCharCode(trail);\n};\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import_callBind_callBound from \"call-bind/callBound\";import __import____helpers_isLeadingSurrogate from \"../helpers/isLeadingSurrogate\";import __import____helpers_isTrailingSurrogate from \"../helpers/isTrailingSurrogate\";import __import___Type from \"./Type\";import __import___UTF16SurrogatePairToCodePoint from \"./UTF16SurrogatePairToCodePoint\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar callBound = __import_callBind_callBound;\nvar isLeadingSurrogate = __import____helpers_isLeadingSurrogate;\nvar isTrailingSurrogate = __import____helpers_isTrailingSurrogate;\n\nvar Type = __import___Type;\nvar UTF16SurrogatePairToCodePoint = __import___UTF16SurrogatePairToCodePoint;\n\nvar $charAt = callBound('String.prototype.charAt');\nvar $charCodeAt = callBound('String.prototype.charCodeAt');\n\n// https://262.ecma-international.org/12.0/#sec-codepointat\n\nmodule.exports = function CodePointAt(string, position) {\n\tif (Type(string) !== 'String') {\n\t\tthrow new $TypeError('Assertion failed: `string` must be a String');\n\t}\n\tvar size = string.length;\n\tif (position < 0 || position >= size) {\n\t\tthrow new $TypeError('Assertion failed: `position` must be >= 0, and < the length of `string`');\n\t}\n\tvar first = $charCodeAt(string, position);\n\tvar cp = $charAt(string, position);\n\tvar firstIsLeading = isLeadingSurrogate(first);\n\tvar firstIsTrailing = isTrailingSurrogate(first);\n\tif (!firstIsLeading && !firstIsTrailing) {\n\t\treturn {\n\t\t\t'[[CodePoint]]': cp,\n\t\t\t'[[CodeUnitCount]]': 1,\n\t\t\t'[[IsUnpairedSurrogate]]': false\n\t\t};\n\t}\n\tif (firstIsTrailing || (position + 1 === size)) {\n\t\treturn {\n\t\t\t'[[CodePoint]]': cp,\n\t\t\t'[[CodeUnitCount]]': 1,\n\t\t\t'[[IsUnpairedSurrogate]]': true\n\t\t};\n\t}\n\tvar second = $charCodeAt(string, position + 1);\n\tif (!isTrailingSurrogate(second)) {\n\t\treturn {\n\t\t\t'[[CodePoint]]': cp,\n\t\t\t'[[CodeUnitCount]]': 1,\n\t\t\t'[[IsUnpairedSurrogate]]': true\n\t\t};\n\t}\n\n\treturn {\n\t\t'[[CodePoint]]': UTF16SurrogatePairToCodePoint(first, second),\n\t\t'[[CodeUnitCount]]': 2,\n\t\t'[[IsUnpairedSurrogate]]': false\n\t};\n};\n", "'use strict';\n\nmodule.exports = Number.isNaN || function isNaN(a) {\n\treturn a !== a;\n};\n", "import __import___isNaN from \"./isNaN\";'use strict';\n\nvar $isNaN = __import___isNaN;\n\nmodule.exports = function (x) { return (typeof x === 'number' || typeof x === 'bigint') && !$isNaN(x) && x !== Infinity && x !== -Infinity; };\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import___isNaN from \"./isNaN\";import __import___isFinite from \"./isFinite\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $abs = GetIntrinsic('%Math.abs%');\nvar $floor = GetIntrinsic('%Math.floor%');\n\nvar $isNaN = __import___isNaN;\nvar $isFinite = __import___isFinite;\n\nmodule.exports = function isInteger(argument) {\n\tif (typeof argument !== 'number' || $isNaN(argument) || !$isFinite(argument)) {\n\t\treturn false;\n\t}\n\tvar absValue = $abs(argument);\n\treturn $floor(absValue) === absValue;\n};\n\n", "import __import_getIntrinsic from \"get-intrinsic\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $Math = GetIntrinsic('%Math%');\nvar $Number = GetIntrinsic('%Number%');\n\nmodule.exports = $Number.MAX_SAFE_INTEGER || $Math.pow(2, 53) - 1;\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import___CodePointAt from \"./CodePointAt\";import __import___Type from \"./Type\";import __import____helpers_isInteger from \"../helpers/isInteger\";import __import____helpers_maxSafeInteger from \"../helpers/maxSafeInteger\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar CodePointAt = __import___CodePointAt;\nvar Type = __import___Type;\n\nvar isInteger = __import____helpers_isInteger;\nvar MAX_SAFE_INTEGER = __import____helpers_maxSafeInteger;\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\n// https://262.ecma-international.org/12.0/#sec-advancestringindex\n\nmodule.exports = function AdvanceStringIndex(S, index, unicode) {\n\tif (Type(S) !== 'String') {\n\t\tthrow new $TypeError('Assertion failed: `S` must be a String');\n\t}\n\tif (!isInteger(index) || index < 0 || index > MAX_SAFE_INTEGER) {\n\t\tthrow new $TypeError('Assertion failed: `length` must be an integer >= 0 and <= 2**53');\n\t}\n\tif (Type(unicode) !== 'Boolean') {\n\t\tthrow new $TypeError('Assertion failed: `unicode` must be a Boolean');\n\t}\n\tif (!unicode) {\n\t\treturn index + 1;\n\t}\n\tvar length = S.length;\n\tif ((index + 1) >= length) {\n\t\treturn index + 1;\n\t}\n\tvar cp = CodePointAt(S, index);\n\treturn index + cp['[[CodeUnitCount]]'];\n};\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import___Type from \"./Type\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar Type = __import___Type;\n\n// https://262.ecma-international.org/6.0/#sec-createiterresultobject\n\nmodule.exports = function CreateIterResultObject(value, done) {\n\tif (Type(done) !== 'Boolean') {\n\t\tthrow new $TypeError('Assertion failed: Type(done) is not Boolean');\n\t}\n\treturn {\n\t\tvalue: value,\n\t\tdone: done\n\t};\n};\n", "import __import_hasPropertyDescriptors from \"has-property-descriptors\";import __import_getIntrinsic from \"get-intrinsic\";import __import____helpers_IsArray from \"../helpers/IsArray\";import __import_callBind_callBound from \"call-bind/callBound\";'use strict';\n\nvar hasPropertyDescriptors = __import_hasPropertyDescriptors;\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $defineProperty = hasPropertyDescriptors() && GetIntrinsic('%Object.defineProperty%', true);\n\nvar hasArrayLengthDefineBug = hasPropertyDescriptors.hasArrayLengthDefineBug();\n\n// eslint-disable-next-line global-require\nvar isArray = hasArrayLengthDefineBug && __import____helpers_IsArray;\n\nvar callBound = __import_callBind_callBound;\n\nvar $isEnumerable = callBound('Object.prototype.propertyIsEnumerable');\n\n// eslint-disable-next-line max-params\nmodule.exports = function DefineOwnProperty(IsDataDescriptor, SameValue, FromPropertyDescriptor, O, P, desc) {\n\tif (!$defineProperty) {\n\t\tif (!IsDataDescriptor(desc)) {\n\t\t\t// ES3 does not support getters/setters\n\t\t\treturn false;\n\t\t}\n\t\tif (!desc['[[Configurable]]'] || !desc['[[Writable]]']) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// fallback for ES3\n\t\tif (P in O && $isEnumerable(O, P) !== !!desc['[[Enumerable]]']) {\n\t\t\t// a non-enumerable existing property\n\t\t\treturn false;\n\t\t}\n\n\t\t// property does not exist at all, or exists but is enumerable\n\t\tvar V = desc['[[Value]]'];\n\t\t// eslint-disable-next-line no-param-reassign\n\t\tO[P] = V; // will use [[Define]]\n\t\treturn SameValue(O[P], V);\n\t}\n\tif (\n\t\thasArrayLengthDefineBug\n\t\t&& P === 'length'\n\t\t&& '[[Value]]' in desc\n\t\t&& isArray(O)\n\t\t&& O.length !== desc['[[Value]]']\n\t) {\n\t\t// eslint-disable-next-line no-param-reassign\n\t\tO.length = desc['[[Value]]'];\n\t\treturn O.length === desc['[[Value]]'];\n\t}\n\n\t$defineProperty(O, P, FromPropertyDescriptor(desc));\n\treturn true;\n};\n", "import __import_has from \"has\";'use strict';\n\nvar has = __import_has;\n\n// https://262.ecma-international.org/13.0/#sec-match-records\n\nmodule.exports = function isMatchRecord(record) {\n\treturn (\n\t\thas(record, '[[StartIndex]]')\n && has(record, '[[EndIndex]]')\n && record['[[StartIndex]]'] >= 0\n && record['[[EndIndex]]'] >= record['[[StartIndex]]']\n && String(parseInt(record['[[StartIndex]]'], 10)) === String(record['[[StartIndex]]'])\n && String(parseInt(record['[[EndIndex]]'], 10)) === String(record['[[EndIndex]]'])\n\t);\n};\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import_has from \"has\";import __import___isInteger from \"./isInteger\";import __import___isMatchRecord from \"./isMatchRecord\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $SyntaxError = GetIntrinsic('%SyntaxError%');\n\nvar has = __import_has;\nvar isInteger = __import___isInteger;\n\nvar isMatchRecord = __import___isMatchRecord;\n\nvar predicates = {\n\t// https://262.ecma-international.org/6.0/#sec-property-descriptor-specification-type\n\t'Property Descriptor': function isPropertyDescriptor(Desc) {\n\t\tvar allowed = {\n\t\t\t'[[Configurable]]': true,\n\t\t\t'[[Enumerable]]': true,\n\t\t\t'[[Get]]': true,\n\t\t\t'[[Set]]': true,\n\t\t\t'[[Value]]': true,\n\t\t\t'[[Writable]]': true\n\t\t};\n\n\t\tif (!Desc) {\n\t\t\treturn false;\n\t\t}\n\t\tfor (var key in Desc) { // eslint-disable-line\n\t\t\tif (has(Desc, key) && !allowed[key]) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tvar isData = has(Desc, '[[Value]]');\n\t\tvar IsAccessor = has(Desc, '[[Get]]') || has(Desc, '[[Set]]');\n\t\tif (isData && IsAccessor) {\n\t\t\tthrow new $TypeError('Property Descriptors may not be both accessor and data descriptors');\n\t\t}\n\t\treturn true;\n\t},\n\t// https://262.ecma-international.org/13.0/#sec-match-records\n\t'Match Record': isMatchRecord,\n\t'Iterator Record': function isIteratorRecord(value) {\n\t\treturn has(value, '[[Iterator]]') && has(value, '[[NextMethod]]') && has(value, '[[Done]]');\n\t},\n\t'PromiseCapability Record': function isPromiseCapabilityRecord(value) {\n\t\treturn !!value\n\t\t\t&& has(value, '[[Resolve]]')\n\t\t\t&& typeof value['[[Resolve]]'] === 'function'\n\t\t\t&& has(value, '[[Reject]]')\n\t\t\t&& typeof value['[[Reject]]'] === 'function'\n\t\t\t&& has(value, '[[Promise]]')\n\t\t\t&& value['[[Promise]]']\n\t\t\t&& typeof value['[[Promise]]'].then === 'function';\n\t},\n\t'AsyncGeneratorRequest Record': function isAsyncGeneratorRequestRecord(value) {\n\t\treturn !!value\n\t\t\t&& has(value, '[[Completion]]') // TODO: confirm is a completion record\n\t\t\t&& has(value, '[[Capability]]')\n\t\t\t&& predicates['PromiseCapability Record'](value['[[Capability]]']);\n\t},\n\t'RegExp Record': function isRegExpRecord(value) {\n\t\treturn value\n\t\t\t&& has(value, '[[IgnoreCase]]')\n\t\t\t&& typeof value['[[IgnoreCase]]'] === 'boolean'\n\t\t\t&& has(value, '[[Multiline]]')\n\t\t\t&& typeof value['[[Multiline]]'] === 'boolean'\n\t\t\t&& has(value, '[[DotAll]]')\n\t\t\t&& typeof value['[[DotAll]]'] === 'boolean'\n\t\t\t&& has(value, '[[Unicode]]')\n\t\t\t&& typeof value['[[Unicode]]'] === 'boolean'\n\t\t\t&& has(value, '[[CapturingGroupsCount]]')\n\t\t\t&& typeof value['[[CapturingGroupsCount]]'] === 'number'\n\t\t\t&& isInteger(value['[[CapturingGroupsCount]]'])\n\t\t\t&& value['[[CapturingGroupsCount]]'] >= 0;\n\t}\n};\n\nmodule.exports = function assertRecord(Type, recordType, argumentName, value) {\n\tvar predicate = predicates[recordType];\n\tif (typeof predicate !== 'function') {\n\t\tthrow new $SyntaxError('unknown record type: ' + recordType);\n\t}\n\tif (Type(value) !== 'Object' || !predicate(value)) {\n\t\tthrow new $TypeError(argumentName + ' must be a ' + recordType);\n\t}\n};\n", "'use strict';\n\nmodule.exports = function fromPropertyDescriptor(Desc) {\n\tif (typeof Desc === 'undefined') {\n\t\treturn Desc;\n\t}\n\tvar obj = {};\n\tif ('[[Value]]' in Desc) {\n\t\tobj.value = Desc['[[Value]]'];\n\t}\n\tif ('[[Writable]]' in Desc) {\n\t\tobj.writable = !!Desc['[[Writable]]'];\n\t}\n\tif ('[[Get]]' in Desc) {\n\t\tobj.get = Desc['[[Get]]'];\n\t}\n\tif ('[[Set]]' in Desc) {\n\t\tobj.set = Desc['[[Set]]'];\n\t}\n\tif ('[[Enumerable]]' in Desc) {\n\t\tobj.enumerable = !!Desc['[[Enumerable]]'];\n\t}\n\tif ('[[Configurable]]' in Desc) {\n\t\tobj.configurable = !!Desc['[[Configurable]]'];\n\t}\n\treturn obj;\n};\n", "import __import____helpers_assertRecord from \"../helpers/assertRecord\";import __import____helpers_fromPropertyDescriptor from \"../helpers/fromPropertyDescriptor\";import __import___Type from \"./Type\";'use strict';\n\nvar assertRecord = __import____helpers_assertRecord;\nvar fromPropertyDescriptor = __import____helpers_fromPropertyDescriptor;\n\nvar Type = __import___Type;\n\n// https://262.ecma-international.org/6.0/#sec-frompropertydescriptor\n\nmodule.exports = function FromPropertyDescriptor(Desc) {\n\tif (typeof Desc !== 'undefined') {\n\t\tassertRecord(Type, 'Property Descriptor', 'Desc', Desc);\n\t}\n\n\treturn fromPropertyDescriptor(Desc);\n};\n", "import __import_has from \"has\";import __import___Type from \"./Type\";import __import____helpers_assertRecord from \"../helpers/assertRecord\";'use strict';\n\nvar has = __import_has;\n\nvar Type = __import___Type;\n\nvar assertRecord = __import____helpers_assertRecord;\n\n// https://262.ecma-international.org/5.1/#sec-8.10.2\n\nmodule.exports = function IsDataDescriptor(Desc) {\n\tif (typeof Desc === 'undefined') {\n\t\treturn false;\n\t}\n\n\tassertRecord(Type, 'Property Descriptor', 'Desc', Desc);\n\n\tif (!has(Desc, '[[Value]]') && !has(Desc, '[[Writable]]')) {\n\t\treturn false;\n\t}\n\n\treturn true;\n};\n", "import __import____helpers_isNaN from \"../helpers/isNaN\";'use strict';\n\nvar $isNaN = __import____helpers_isNaN;\n\n// http://262.ecma-international.org/5.1/#sec-9.12\n\nmodule.exports = function SameValue(x, y) {\n\tif (x === y) { // 0 === -0, but they are not identical.\n\t\tif (x === 0) { return 1 / x === 1 / y; }\n\t\treturn true;\n\t}\n\treturn $isNaN(x) && $isNaN(y);\n};\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import____helpers_DefineOwnProperty from \"../helpers/DefineOwnProperty\";import __import___FromPropertyDescriptor from \"./FromPropertyDescriptor\";import __import___IsDataDescriptor from \"./IsDataDescriptor\";import __import___IsPropertyKey from \"./IsPropertyKey\";import __import___SameValue from \"./SameValue\";import __import___Type from \"./Type\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar DefineOwnProperty = __import____helpers_DefineOwnProperty;\n\nvar FromPropertyDescriptor = __import___FromPropertyDescriptor;\nvar IsDataDescriptor = __import___IsDataDescriptor;\nvar IsPropertyKey = __import___IsPropertyKey;\nvar SameValue = __import___SameValue;\nvar Type = __import___Type;\n\n// https://262.ecma-international.org/6.0/#sec-createmethodproperty\n\nmodule.exports = function CreateMethodProperty(O, P, V) {\n\tif (Type(O) !== 'Object') {\n\t\tthrow new $TypeError('Assertion failed: Type(O) is not Object');\n\t}\n\n\tif (!IsPropertyKey(P)) {\n\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t}\n\n\tvar newDesc = {\n\t\t'[[Configurable]]': true,\n\t\t'[[Enumerable]]': false,\n\t\t'[[Value]]': V,\n\t\t'[[Writable]]': true\n\t};\n\treturn DefineOwnProperty(\n\t\tIsDataDescriptor,\n\t\tSameValue,\n\t\tFromPropertyDescriptor,\n\t\tO,\n\t\tP,\n\t\tnewDesc\n\t);\n};\n", "'use strict';\n\nmodule.exports = function forEach(array, callback) {\n\tfor (var i = 0; i < array.length; i += 1) {\n\t\tcallback(array[i], i, array); // eslint-disable-line callback-return\n\t}\n};\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import_callBind_callBound from \"call-bind/callBound\";import __import_objectInspect from \"object-inspect\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\nvar callBound = __import_callBind_callBound;\nvar inspect = __import_objectInspect;\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\nvar $Map = GetIntrinsic('%Map%', true);\n\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\nvar $mapGet = callBound('Map.prototype.get', true);\nvar $mapSet = callBound('Map.prototype.set', true);\nvar $mapHas = callBound('Map.prototype.has', true);\n\n/*\n * This function traverses the list returning the node corresponding to the\n * given key.\n *\n * That node is also moved to the head of the list, so that if it's accessed\n * again we don't need to traverse the whole list. By doing so, all the recently\n * used nodes can be accessed relatively quickly.\n */\nvar listGetNode = function (list, key) { // eslint-disable-line consistent-return\n\tfor (var prev = list, curr; (curr = prev.next) !== null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\tcurr.next = list.next;\n\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\nvar listGet = function (objects, key) {\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\nvar listSet = function (objects, key, value) {\n\tvar node = listGetNode(objects, key);\n\tif (node) {\n\t\tnode.value = value;\n\t} else {\n\t\t// Prepend the new node to the beginning of the list\n\t\tobjects.next = { // eslint-disable-line no-param-reassign\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t};\n\t}\n};\nvar listHas = function (objects, key) {\n\treturn !!listGetNode(objects, key);\n};\n\nmodule.exports = function getSideChannel() {\n\tvar $wm;\n\tvar $m;\n\tvar $o;\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\tget: function (key) { // eslint-disable-line consistent-return\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapGet($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapGet($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listGet($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\thas: function (key) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapHas($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapHas($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listHas($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif (!$wm) {\n\t\t\t\t\t$wm = new $WeakMap();\n\t\t\t\t}\n\t\t\t\t$weakMapSet($wm, key, value);\n\t\t\t} else if ($Map) {\n\t\t\t\tif (!$m) {\n\t\t\t\t\t$m = new $Map();\n\t\t\t\t}\n\t\t\t\t$mapSet($m, key, value);\n\t\t\t} else {\n\t\t\t\tif (!$o) {\n\t\t\t\t\t/*\n\t\t\t\t\t * Initialize the linked list as an empty node, so that we don't have\n\t\t\t\t\t * to special-case handling of the first node: we can always refer to\n\t\t\t\t\t * it as (previous node).next, instead of something like (list).head\n\t\t\t\t\t */\n\t\t\t\t\t$o = { key: {}, next: null };\n\t\t\t\t}\n\t\t\t\tlistSet($o, key, value);\n\t\t\t}\n\t\t}\n\t};\n\treturn channel;\n};\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import_has from \"has\";import __import_sideChannel from \"side-channel\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\nvar has = __import_has;\nvar channel = __import_sideChannel();\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar SLOT = {\n\tassert: function (O, slot) {\n\t\tif (!O || (typeof O !== 'object' && typeof O !== 'function')) {\n\t\t\tthrow new $TypeError('`O` is not an object');\n\t\t}\n\t\tif (typeof slot !== 'string') {\n\t\t\tthrow new $TypeError('`slot` must be a string');\n\t\t}\n\t\tchannel.assert(O);\n\t\tif (!SLOT.has(O, slot)) {\n\t\t\tthrow new $TypeError('`' + slot + '` is not present on `O`');\n\t\t}\n\t},\n\tget: function (O, slot) {\n\t\tif (!O || (typeof O !== 'object' && typeof O !== 'function')) {\n\t\t\tthrow new $TypeError('`O` is not an object');\n\t\t}\n\t\tif (typeof slot !== 'string') {\n\t\t\tthrow new $TypeError('`slot` must be a string');\n\t\t}\n\t\tvar slots = channel.get(O);\n\t\treturn slots && slots['$' + slot];\n\t},\n\thas: function (O, slot) {\n\t\tif (!O || (typeof O !== 'object' && typeof O !== 'function')) {\n\t\t\tthrow new $TypeError('`O` is not an object');\n\t\t}\n\t\tif (typeof slot !== 'string') {\n\t\t\tthrow new $TypeError('`slot` must be a string');\n\t\t}\n\t\tvar slots = channel.get(O);\n\t\treturn !!slots && has(slots, '$' + slot);\n\t},\n\tset: function (O, slot, V) {\n\t\tif (!O || (typeof O !== 'object' && typeof O !== 'function')) {\n\t\t\tthrow new $TypeError('`O` is not an object');\n\t\t}\n\t\tif (typeof slot !== 'string') {\n\t\t\tthrow new $TypeError('`slot` must be a string');\n\t\t}\n\t\tvar slots = channel.get(O);\n\t\tif (!slots) {\n\t\t\tslots = {};\n\t\t\tchannel.set(O, slots);\n\t\t}\n\t\tslots['$' + slot] = V;\n\t}\n};\n\nif (Object.freeze) {\n\tObject.freeze(SLOT);\n}\n\nmodule.exports = SLOT;\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import___IsArray from \"./IsArray\";import __import___Type from \"./Type\";import __import____helpers_forEach from \"../helpers/forEach\";import __import_internalSlot from \"internal-slot\";import __import_hasProto from \"has-proto\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $ObjectCreate = GetIntrinsic('%Object.create%', true);\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $SyntaxError = GetIntrinsic('%SyntaxError%');\n\nvar IsArray = __import___IsArray;\nvar Type = __import___Type;\n\nvar forEach = __import____helpers_forEach;\n\nvar SLOT = __import_internalSlot;\n\nvar hasProto = __import_hasProto();\n\n// https://262.ecma-international.org/11.0/#sec-objectcreate\n\nmodule.exports = function OrdinaryObjectCreate(proto) {\n\tif (proto !== null && Type(proto) !== 'Object') {\n\t\tthrow new $TypeError('Assertion failed: `proto` must be null or an object');\n\t}\n\tvar additionalInternalSlotsList = arguments.length < 2 ? [] : arguments[1];\n\tif (!IsArray(additionalInternalSlotsList)) {\n\t\tthrow new $TypeError('Assertion failed: `additionalInternalSlotsList` must be an Array');\n\t}\n\n\t// var internalSlotsList = ['[[Prototype]]', '[[Extensible]]']; // step 1\n\t// internalSlotsList.push(...additionalInternalSlotsList); // step 2\n\t// var O = MakeBasicObject(internalSlotsList); // step 3\n\t// setProto(O, proto); // step 4\n\t// return O; // step 5\n\n\tvar O;\n\tif ($ObjectCreate) {\n\t\tO = $ObjectCreate(proto);\n\t} else if (hasProto) {\n\t\tO = { __proto__: proto };\n\t} else {\n\t\tif (proto === null) {\n\t\t\tthrow new $SyntaxError('native Object.create support is required to create null objects');\n\t\t}\n\t\tvar T = function T() {};\n\t\tT.prototype = proto;\n\t\tO = new T();\n\t}\n\n\tif (additionalInternalSlotsList.length > 0) {\n\t\tforEach(additionalInternalSlotsList, function (slot) {\n\t\t\tSLOT.set(O, slot, void undefined);\n\t\t});\n\t}\n\n\treturn O;\n};\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import_callBind_callBound from \"call-bind/callBound\";import __import___Call from \"./Call\";import __import___Get from \"./Get\";import __import___IsCallable from \"./IsCallable\";import __import___Type from \"./Type\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar regexExec = __import_callBind_callBound('RegExp.prototype.exec');\n\nvar Call = __import___Call;\nvar Get = __import___Get;\nvar IsCallable = __import___IsCallable;\nvar Type = __import___Type;\n\n// https://262.ecma-international.org/6.0/#sec-regexpexec\n\nmodule.exports = function RegExpExec(R, S) {\n\tif (Type(R) !== 'Object') {\n\t\tthrow new $TypeError('Assertion failed: `R` must be an Object');\n\t}\n\tif (Type(S) !== 'String') {\n\t\tthrow new $TypeError('Assertion failed: `S` must be a String');\n\t}\n\tvar exec = Get(R, 'exec');\n\tif (IsCallable(exec)) {\n\t\tvar result = Call(exec, R, [S]);\n\t\tif (result === null || Type(result) === 'Object') {\n\t\t\treturn result;\n\t\t}\n\t\tthrow new $TypeError('\"exec\" method must return `null` or an Object');\n\t}\n\treturn regexExec(R, S);\n};\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import___IsPropertyKey from \"./IsPropertyKey\";import __import___SameValue from \"./SameValue\";import __import___Type from \"./Type\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar IsPropertyKey = __import___IsPropertyKey;\nvar SameValue = __import___SameValue;\nvar Type = __import___Type;\n\n// IE 9 does not throw in strict mode when writability/configurability/extensibility is violated\nvar noThrowOnStrictViolation = (function () {\n\ttry {\n\t\tdelete [].length;\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n}());\n\n// https://262.ecma-international.org/6.0/#sec-set-o-p-v-throw\n\nmodule.exports = function Set(O, P, V, Throw) {\n\tif (Type(O) !== 'Object') {\n\t\tthrow new $TypeError('Assertion failed: `O` must be an Object');\n\t}\n\tif (!IsPropertyKey(P)) {\n\t\tthrow new $TypeError('Assertion failed: `P` must be a Property Key');\n\t}\n\tif (Type(Throw) !== 'Boolean') {\n\t\tthrow new $TypeError('Assertion failed: `Throw` must be a Boolean');\n\t}\n\tif (Throw) {\n\t\tO[P] = V; // eslint-disable-line no-param-reassign\n\t\tif (noThrowOnStrictViolation && !SameValue(O[P], V)) {\n\t\t\tthrow new $TypeError('Attempted to assign to readonly property.');\n\t\t}\n\t\treturn true;\n\t}\n\ttry {\n\t\tO[P] = V; // eslint-disable-line no-param-reassign\n\t\treturn noThrowOnStrictViolation ? SameValue(O[P], V) : true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n\n};\n", "import __import_getIntrinsic from \"get-intrinsic\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $abs = GetIntrinsic('%Math.abs%');\n\n// http://262.ecma-international.org/5.1/#sec-5.2\n\nmodule.exports = function abs(x) {\n\treturn $abs(x);\n};\n", "import __import___Type from \"./Type\";'use strict';\n\nvar Type = __import___Type;\n\n// var modulo = require('./modulo');\nvar $floor = Math.floor;\n\n// http://262.ecma-international.org/11.0/#eqn-floor\n\nmodule.exports = function floor(x) {\n\t// return x - modulo(x, 1);\n\tif (Type(x) === 'BigInt') {\n\t\treturn x;\n\t}\n\treturn $floor(x);\n};\n", "'use strict';\n\nmodule.exports = function isPrimitive(value) {\n\treturn value === null || (typeof value !== 'function' && typeof value !== 'object');\n};\n", "'use strict';\n\nmodule.exports = function isPrimitive(value) {\n\treturn value === null || (typeof value !== 'function' && typeof value !== 'object');\n};\n", "import __import_hasTostringtag_shams from \"has-tostringtag/shams\";'use strict';\n\nvar getDay = Date.prototype.getDay;\nvar tryDateObject = function tryDateGetDayCall(value) {\n\ttry {\n\t\tgetDay.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar toStr = Object.prototype.toString;\nvar dateClass = '[object Date]';\nvar hasToStringTag = __import_hasTostringtag_shams();\n\nmodule.exports = function isDateObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\treturn hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass;\n};\n", "import __import_hasSymbols from \"has-symbols\";'use strict';\n\nvar toStr = Object.prototype.toString;\nvar hasSymbols = __import_hasSymbols();\n\nif (hasSymbols) {\n\tvar symToStr = Symbol.prototype.toString;\n\tvar symStringRegex = /^Symbol\\(.*\\)$/;\n\tvar isSymbolObject = function isRealSymbolObject(value) {\n\t\tif (typeof value.valueOf() !== 'symbol') {\n\t\t\treturn false;\n\t\t}\n\t\treturn symStringRegex.test(symToStr.call(value));\n\t};\n\n\tmodule.exports = function isSymbol(value) {\n\t\tif (typeof value === 'symbol') {\n\t\t\treturn true;\n\t\t}\n\t\tif (toStr.call(value) !== '[object Symbol]') {\n\t\t\treturn false;\n\t\t}\n\t\ttry {\n\t\t\treturn isSymbolObject(value);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n} else {\n\n\tmodule.exports = function isSymbol(value) {\n\t\t// this environment does not support Symbols.\n\t\treturn false && value;\n\t};\n}\n", "import __import___helpers_isPrimitive from \"./helpers/isPrimitive\";import __import_isCallable from \"is-callable\";import __import_isDateObject from \"is-date-object\";import __import_isSymbol from \"is-symbol\";'use strict';\n\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol';\n\nvar isPrimitive = __import___helpers_isPrimitive;\nvar isCallable = __import_isCallable;\nvar isDate = __import_isDateObject;\nvar isSymbol = __import_isSymbol;\n\nvar ordinaryToPrimitive = function OrdinaryToPrimitive(O, hint) {\n\tif (typeof O === 'undefined' || O === null) {\n\t\tthrow new TypeError('Cannot call method on ' + O);\n\t}\n\tif (typeof hint !== 'string' || (hint !== 'number' && hint !== 'string')) {\n\t\tthrow new TypeError('hint must be \"string\" or \"number\"');\n\t}\n\tvar methodNames = hint === 'string' ? ['toString', 'valueOf'] : ['valueOf', 'toString'];\n\tvar method, result, i;\n\tfor (i = 0; i < methodNames.length; ++i) {\n\t\tmethod = O[methodNames[i]];\n\t\tif (isCallable(method)) {\n\t\t\tresult = method.call(O);\n\t\t\tif (isPrimitive(result)) {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t}\n\t}\n\tthrow new TypeError('No default value');\n};\n\nvar GetMethod = function GetMethod(O, P) {\n\tvar func = O[P];\n\tif (func !== null && typeof func !== 'undefined') {\n\t\tif (!isCallable(func)) {\n\t\t\tthrow new TypeError(func + ' returned for property ' + P + ' of object ' + O + ' is not a function');\n\t\t}\n\t\treturn func;\n\t}\n\treturn void 0;\n};\n\n// http://www.ecma-international.org/ecma-262/6.0/#sec-toprimitive\nmodule.exports = function ToPrimitive(input) {\n\tif (isPrimitive(input)) {\n\t\treturn input;\n\t}\n\tvar hint = 'default';\n\tif (arguments.length > 1) {\n\t\tif (arguments[1] === String) {\n\t\t\thint = 'string';\n\t\t} else if (arguments[1] === Number) {\n\t\t\thint = 'number';\n\t\t}\n\t}\n\n\tvar exoticToPrim;\n\tif (hasSymbols) {\n\t\tif (Symbol.toPrimitive) {\n\t\t\texoticToPrim = GetMethod(input, Symbol.toPrimitive);\n\t\t} else if (isSymbol(input)) {\n\t\t\texoticToPrim = Symbol.prototype.valueOf;\n\t\t}\n\t}\n\tif (typeof exoticToPrim !== 'undefined') {\n\t\tvar result = exoticToPrim.call(input, hint);\n\t\tif (isPrimitive(result)) {\n\t\t\treturn result;\n\t\t}\n\t\tthrow new TypeError('unable to convert exotic object to primitive');\n\t}\n\tif (hint === 'default' && (isDate(input) || isSymbol(input))) {\n\t\thint = 'string';\n\t}\n\treturn ordinaryToPrimitive(input, hint === 'default' ? 'number' : hint);\n};\n", "import __import_esToPrimitive_es2015 from \"es-to-primitive/es2015\";'use strict';\n\nvar toPrimitive = __import_esToPrimitive_es2015;\n\n// https://262.ecma-international.org/6.0/#sec-toprimitive\n\nmodule.exports = function ToPrimitive(input) {\n\tif (arguments.length > 1) {\n\t\treturn toPrimitive(input, arguments[1]);\n\t}\n\treturn toPrimitive(input);\n};\n", "import __import_callBind_callBound from \"call-bind/callBound\";import __import_getIntrinsic from \"get-intrinsic\";import __import_isRegex from \"is-regex\";'use strict';\n\nvar callBound = __import_callBind_callBound;\nvar GetIntrinsic = __import_getIntrinsic;\nvar isRegex = __import_isRegex;\n\nvar $exec = callBound('RegExp.prototype.exec');\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nmodule.exports = function regexTester(regex) {\n\tif (!isRegex(regex)) {\n\t\tthrow new $TypeError('`regex` must be a RegExp');\n\t}\n\treturn function test(s) {\n\t\treturn $exec(regex, s) !== null;\n\t};\n};\n", "import __import_esAbstract_2022_RequireObjectCoercible from \"es-abstract/2022/RequireObjectCoercible\";import __import_esAbstract_2022_ToString from \"es-abstract/2022/ToString\";import __import_callBind_callBound from \"call-bind/callBound\";'use strict';\n\nvar RequireObjectCoercible = __import_esAbstract_2022_RequireObjectCoercible;\nvar ToString = __import_esAbstract_2022_ToString;\nvar callBound = __import_callBind_callBound;\nvar $replace = callBound('String.prototype.replace');\n\nvar mvsIsWS = (/^\\s$/).test('\\u180E');\n/* eslint-disable no-control-regex */\nvar leftWhitespace = mvsIsWS\n\t? /^[\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF]+/\n\t: /^[\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF]+/;\nvar rightWhitespace = mvsIsWS\n\t? /[\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF]+$/\n\t: /[\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF]+$/;\n/* eslint-enable no-control-regex */\n\nmodule.exports = function trim() {\n\tvar S = ToString(RequireObjectCoercible(this));\n\treturn $replace($replace(S, leftWhitespace, ''), rightWhitespace, '');\n};\n", "import __import___implementation from \"./implementation\";'use strict';\n\nvar implementation = __import___implementation;\n\nvar zeroWidthSpace = '\\u200b';\nvar mongolianVowelSeparator = '\\u180E';\n\nmodule.exports = function getPolyfill() {\n\tif (\n\t\tString.prototype.trim\n\t\t&& zeroWidthSpace.trim() === zeroWidthSpace\n\t\t&& mongolianVowelSeparator.trim() === mongolianVowelSeparator\n\t\t&& ('_' + mongolianVowelSeparator).trim() === ('_' + mongolianVowelSeparator)\n\t\t&& (mongolianVowelSeparator + '_').trim() === (mongolianVowelSeparator + '_')\n\t) {\n\t\treturn String.prototype.trim;\n\t}\n\treturn implementation;\n};\n", "import __import_defineProperties from \"define-properties\";import __import___polyfill from \"./polyfill\";'use strict';\n\nvar define = __import_defineProperties;\nvar getPolyfill = __import___polyfill;\n\nmodule.exports = function shimStringTrim() {\n\tvar polyfill = getPolyfill();\n\tdefine(String.prototype, { trim: polyfill }, {\n\t\ttrim: function testTrim() {\n\t\t\treturn String.prototype.trim !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n", "import __import_callBind from \"call-bind\";import __import_defineProperties from \"define-properties\";import __import_esAbstract_2022_RequireObjectCoercible from \"es-abstract/2022/RequireObjectCoercible\";import __import___implementation from \"./implementation\";import __import___polyfill from \"./polyfill\";import __import___shim from \"./shim\";'use strict';\n\nvar callBind = __import_callBind;\nvar define = __import_defineProperties;\nvar RequireObjectCoercible = __import_esAbstract_2022_RequireObjectCoercible;\n\nvar implementation = __import___implementation;\nvar getPolyfill = __import___polyfill;\nvar shim = __import___shim;\n\nvar bound = callBind(getPolyfill());\nvar boundMethod = function trim(receiver) {\n\tRequireObjectCoercible(receiver);\n\treturn bound(receiver);\n};\n\ndefine(boundMethod, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = boundMethod;\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import_callBind_callBound from \"call-bind/callBound\";import __import_safeRegexTest from \"safe-regex-test\";import __import_string_prototype_trim from \"string.prototype.trim\";import __import___Type from \"./Type\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $Number = GetIntrinsic('%Number%');\nvar $RegExp = GetIntrinsic('%RegExp%');\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $parseInteger = GetIntrinsic('%parseInt%');\n\nvar callBound = __import_callBind_callBound;\nvar regexTester = __import_safeRegexTest;\n\nvar $strSlice = callBound('String.prototype.slice');\nvar isBinary = regexTester(/^0b[01]+$/i);\nvar isOctal = regexTester(/^0o[0-7]+$/i);\nvar isInvalidHexLiteral = regexTester(/^[-+]0x[0-9a-f]+$/i);\nvar nonWS = ['\\u0085', '\\u200b', '\\ufffe'].join('');\nvar nonWSregex = new $RegExp('[' + nonWS + ']', 'g');\nvar hasNonWS = regexTester(nonWSregex);\n\nvar $trim = __import_string_prototype_trim;\n\nvar Type = __import___Type;\n\n// https://262.ecma-international.org/13.0/#sec-stringtonumber\n\nmodule.exports = function StringToNumber(argument) {\n\tif (Type(argument) !== 'String') {\n\t\tthrow new $TypeError('Assertion failed: `argument` is not a String');\n\t}\n\tif (isBinary(argument)) {\n\t\treturn $Number($parseInteger($strSlice(argument, 2), 2));\n\t}\n\tif (isOctal(argument)) {\n\t\treturn $Number($parseInteger($strSlice(argument, 2), 8));\n\t}\n\tif (hasNonWS(argument) || isInvalidHexLiteral(argument)) {\n\t\treturn NaN;\n\t}\n\tvar trimmed = $trim(argument);\n\tif (trimmed !== argument) {\n\t\treturn StringToNumber(trimmed);\n\t}\n\treturn $Number(argument);\n};\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import____helpers_isPrimitive from \"../helpers/isPrimitive\";import __import___ToPrimitive from \"./ToPrimitive\";import __import___StringToNumber from \"./StringToNumber\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $Number = GetIntrinsic('%Number%');\nvar isPrimitive = __import____helpers_isPrimitive;\n\nvar ToPrimitive = __import___ToPrimitive;\nvar StringToNumber = __import___StringToNumber;\n\n// https://262.ecma-international.org/13.0/#sec-tonumber\n\nmodule.exports = function ToNumber(argument) {\n\tvar value = isPrimitive(argument) ? argument : ToPrimitive(argument, $Number);\n\tif (typeof value === 'symbol') {\n\t\tthrow new $TypeError('Cannot convert a Symbol value to a number');\n\t}\n\tif (typeof value === 'bigint') {\n\t\tthrow new $TypeError('Conversion from \\'BigInt\\' to \\'number\\' is not allowed.');\n\t}\n\tif (typeof value === 'string') {\n\t\treturn StringToNumber(value);\n\t}\n\treturn $Number(value);\n};\n", "'use strict';\n\nmodule.exports = function sign(number) {\n\treturn number >= 0 ? 1 : -1;\n};\n", "import __import___abs from \"./abs\";import __import___floor from \"./floor\";import __import___ToNumber from \"./ToNumber\";import __import____helpers_isNaN from \"../helpers/isNaN\";import __import____helpers_isFinite from \"../helpers/isFinite\";import __import____helpers_sign from \"../helpers/sign\";'use strict';\n\nvar abs = __import___abs;\nvar floor = __import___floor;\nvar ToNumber = __import___ToNumber;\n\nvar $isNaN = __import____helpers_isNaN;\nvar $isFinite = __import____helpers_isFinite;\nvar $sign = __import____helpers_sign;\n\n// https://262.ecma-international.org/12.0/#sec-tointegerorinfinity\n\nmodule.exports = function ToIntegerOrInfinity(value) {\n\tvar number = ToNumber(value);\n\tif ($isNaN(number) || number === 0) { return 0; }\n\tif (!$isFinite(number)) { return number; }\n\tvar integer = floor(abs(number));\n\tif (integer === 0) { return 0; }\n\treturn $sign(number) * integer;\n};\n", "import __import____helpers_maxSafeInteger from \"../helpers/maxSafeInteger\";import __import___ToIntegerOrInfinity from \"./ToIntegerOrInfinity\";'use strict';\n\nvar MAX_SAFE_INTEGER = __import____helpers_maxSafeInteger;\n\nvar ToIntegerOrInfinity = __import___ToIntegerOrInfinity;\n\nmodule.exports = function ToLength(argument) {\n\tvar len = ToIntegerOrInfinity(argument);\n\tif (len <= 0) { return 0; } // includes converting -0 to +0\n\tif (len > MAX_SAFE_INTEGER) { return MAX_SAFE_INTEGER; }\n\treturn len;\n};\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import_hasTostringtag_shams from \"has-tostringtag/shams\";import __import_has from \"has\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\n\nvar hasToStringTag = __import_hasTostringtag_shams();\nvar has = __import_has;\n\nvar toStringTag = hasToStringTag ? Symbol.toStringTag : null;\n\nmodule.exports = function setToStringTag(object, value) {\n\tvar overrideIfSet = arguments.length > 2 && arguments[2] && arguments[2].force;\n\tif (toStringTag && (overrideIfSet || !has(object, toStringTag))) {\n\t\tif ($defineProperty) {\n\t\t\t$defineProperty(object, toStringTag, {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: false,\n\t\t\t\tvalue: value,\n\t\t\t\twritable: false\n\t\t\t});\n\t\t} else {\n\t\t\tobject[toStringTag] = value; // eslint-disable-line no-param-reassign\n\t\t}\n\t}\n};\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import_hasSymbols from \"has-symbols\";import __import___AdvanceStringIndex from \"./AdvanceStringIndex\";import __import___CreateIterResultObject from \"./CreateIterResultObject\";import __import___CreateMethodProperty from \"./CreateMethodProperty\";import __import___Get from \"./Get\";import __import___OrdinaryObjectCreate from \"./OrdinaryObjectCreate\";import __import___RegExpExec from \"./RegExpExec\";import __import___Set from \"./Set\";import __import___ToLength from \"./ToLength\";import __import___ToString from \"./ToString\";import __import___Type from \"./Type\";import __import_internalSlot from \"internal-slot\";import __import_esSetTostringtag from \"es-set-tostringtag\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\nvar hasSymbols = __import_hasSymbols();\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar IteratorPrototype = GetIntrinsic('%IteratorPrototype%', true);\n\nvar AdvanceStringIndex = __import___AdvanceStringIndex;\nvar CreateIterResultObject = __import___CreateIterResultObject;\nvar CreateMethodProperty = __import___CreateMethodProperty;\nvar Get = __import___Get;\nvar OrdinaryObjectCreate = __import___OrdinaryObjectCreate;\nvar RegExpExec = __import___RegExpExec;\nvar Set = __import___Set;\nvar ToLength = __import___ToLength;\nvar ToString = __import___ToString;\nvar Type = __import___Type;\n\nvar SLOT = __import_internalSlot;\nvar setToStringTag = __import_esSetTostringtag;\n\nvar RegExpStringIterator = function RegExpStringIterator(R, S, global, fullUnicode) {\n\tif (Type(S) !== 'String') {\n\t\tthrow new $TypeError('`S` must be a string');\n\t}\n\tif (Type(global) !== 'Boolean') {\n\t\tthrow new $TypeError('`global` must be a boolean');\n\t}\n\tif (Type(fullUnicode) !== 'Boolean') {\n\t\tthrow new $TypeError('`fullUnicode` must be a boolean');\n\t}\n\tSLOT.set(this, '[[IteratingRegExp]]', R);\n\tSLOT.set(this, '[[IteratedString]]', S);\n\tSLOT.set(this, '[[Global]]', global);\n\tSLOT.set(this, '[[Unicode]]', fullUnicode);\n\tSLOT.set(this, '[[Done]]', false);\n};\n\nif (IteratorPrototype) {\n\tRegExpStringIterator.prototype = OrdinaryObjectCreate(IteratorPrototype);\n}\n\nvar RegExpStringIteratorNext = function next() {\n\tvar O = this; // eslint-disable-line no-invalid-this\n\tif (Type(O) !== 'Object') {\n\t\tthrow new $TypeError('receiver must be an object');\n\t}\n\tif (\n\t\t!(O instanceof RegExpStringIterator)\n\t\t|| !SLOT.has(O, '[[IteratingRegExp]]')\n\t\t|| !SLOT.has(O, '[[IteratedString]]')\n\t\t|| !SLOT.has(O, '[[Global]]')\n\t\t|| !SLOT.has(O, '[[Unicode]]')\n\t\t|| !SLOT.has(O, '[[Done]]')\n\t) {\n\t\tthrow new $TypeError('\"this\" value must be a RegExpStringIterator instance');\n\t}\n\tif (SLOT.get(O, '[[Done]]')) {\n\t\treturn CreateIterResultObject(undefined, true);\n\t}\n\tvar R = SLOT.get(O, '[[IteratingRegExp]]');\n\tvar S = SLOT.get(O, '[[IteratedString]]');\n\tvar global = SLOT.get(O, '[[Global]]');\n\tvar fullUnicode = SLOT.get(O, '[[Unicode]]');\n\tvar match = RegExpExec(R, S);\n\tif (match === null) {\n\t\tSLOT.set(O, '[[Done]]', true);\n\t\treturn CreateIterResultObject(undefined, true);\n\t}\n\tif (global) {\n\t\tvar matchStr = ToString(Get(match, '0'));\n\t\tif (matchStr === '') {\n\t\t\tvar thisIndex = ToLength(Get(R, 'lastIndex'));\n\t\t\tvar nextIndex = AdvanceStringIndex(S, thisIndex, fullUnicode);\n\t\t\tSet(R, 'lastIndex', nextIndex, true);\n\t\t}\n\t\treturn CreateIterResultObject(match, false);\n\t}\n\tSLOT.set(O, '[[Done]]', true);\n\treturn CreateIterResultObject(match, false);\n};\nCreateMethodProperty(RegExpStringIterator.prototype, 'next', RegExpStringIteratorNext);\n\nif (hasSymbols) {\n\tsetToStringTag(RegExpStringIterator.prototype, 'RegExp String Iterator');\n\n\tif (Symbol.iterator && typeof RegExpStringIterator.prototype[Symbol.iterator] !== 'function') {\n\t\tvar iteratorFn = function SymbolIterator() {\n\t\t\treturn this;\n\t\t};\n\t\tCreateMethodProperty(RegExpStringIterator.prototype, Symbol.iterator, iteratorFn);\n\t}\n}\n\n// https://262.ecma-international.org/11.0/#sec-createregexpstringiterator\nmodule.exports = function CreateRegExpStringIterator(R, S, global, fullUnicode) {\n\t// assert R.global === global && R.unicode === fullUnicode?\n\treturn new RegExpStringIterator(R, S, global, fullUnicode);\n};\n", "import __import_getIntrinsic from \"get-intrinsic\";'use strict';\n\n// TODO: remove, semver-major\n\nmodule.exports = __import_getIntrinsic;\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import_has from \"has\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar has = __import_has;\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nmodule.exports = function IsPropertyDescriptor(ES, Desc) {\n\tif (ES.Type(Desc) !== 'Object') {\n\t\treturn false;\n\t}\n\tvar allowed = {\n\t\t'[[Configurable]]': true,\n\t\t'[[Enumerable]]': true,\n\t\t'[[Get]]': true,\n\t\t'[[Set]]': true,\n\t\t'[[Value]]': true,\n\t\t'[[Writable]]': true\n\t};\n\n\tfor (var key in Desc) { // eslint-disable-line no-restricted-syntax\n\t\tif (has(Desc, key) && !allowed[key]) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tif (ES.IsDataDescriptor(Desc) && ES.IsAccessorDescriptor(Desc)) {\n\t\tthrow new $TypeError('Property Descriptors may not be both accessor and data descriptors');\n\t}\n\treturn true;\n};\n", "import __import_has from \"has\";import __import___Type from \"./Type\";import __import____helpers_assertRecord from \"../helpers/assertRecord\";'use strict';\n\nvar has = __import_has;\n\nvar Type = __import___Type;\n\nvar assertRecord = __import____helpers_assertRecord;\n\n// https://262.ecma-international.org/5.1/#sec-8.10.1\n\nmodule.exports = function IsAccessorDescriptor(Desc) {\n\tif (typeof Desc === 'undefined') {\n\t\treturn false;\n\t}\n\n\tassertRecord(Type, 'Property Descriptor', 'Desc', Desc);\n\n\tif (!has(Desc, '[[Get]]') && !has(Desc, '[[Set]]')) {\n\t\treturn false;\n\t}\n\n\treturn true;\n};\n", "import __import_has from \"has\";import __import_getIntrinsic from \"get-intrinsic\";import __import___Type from \"./Type\";import __import___ToBoolean from \"./ToBoolean\";import __import___IsCallable from \"./IsCallable\";'use strict';\n\nvar has = __import_has;\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar Type = __import___Type;\nvar ToBoolean = __import___ToBoolean;\nvar IsCallable = __import___IsCallable;\n\n// https://262.ecma-international.org/5.1/#sec-8.10.5\n\nmodule.exports = function ToPropertyDescriptor(Obj) {\n\tif (Type(Obj) !== 'Object') {\n\t\tthrow new $TypeError('ToPropertyDescriptor requires an object');\n\t}\n\n\tvar desc = {};\n\tif (has(Obj, 'enumerable')) {\n\t\tdesc['[[Enumerable]]'] = ToBoolean(Obj.enumerable);\n\t}\n\tif (has(Obj, 'configurable')) {\n\t\tdesc['[[Configurable]]'] = ToBoolean(Obj.configurable);\n\t}\n\tif (has(Obj, 'value')) {\n\t\tdesc['[[Value]]'] = Obj.value;\n\t}\n\tif (has(Obj, 'writable')) {\n\t\tdesc['[[Writable]]'] = ToBoolean(Obj.writable);\n\t}\n\tif (has(Obj, 'get')) {\n\t\tvar getter = Obj.get;\n\t\tif (typeof getter !== 'undefined' && !IsCallable(getter)) {\n\t\t\tthrow new $TypeError('getter must be a function');\n\t\t}\n\t\tdesc['[[Get]]'] = getter;\n\t}\n\tif (has(Obj, 'set')) {\n\t\tvar setter = Obj.set;\n\t\tif (typeof setter !== 'undefined' && !IsCallable(setter)) {\n\t\t\tthrow new $TypeError('setter must be a function');\n\t\t}\n\t\tdesc['[[Set]]'] = setter;\n\t}\n\n\tif ((has(desc, '[[Get]]') || has(desc, '[[Set]]')) && (has(desc, '[[Value]]') || has(desc, '[[Writable]]'))) {\n\t\tthrow new $TypeError('Invalid property descriptor. Cannot both specify accessors and a value or writable attribute');\n\t}\n\treturn desc;\n};\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import____helpers_isPropertyDescriptor from \"../helpers/isPropertyDescriptor\";import __import____helpers_DefineOwnProperty from \"../helpers/DefineOwnProperty\";import __import___FromPropertyDescriptor from \"./FromPropertyDescriptor\";import __import___IsAccessorDescriptor from \"./IsAccessorDescriptor\";import __import___IsDataDescriptor from \"./IsDataDescriptor\";import __import___IsPropertyKey from \"./IsPropertyKey\";import __import___SameValue from \"./SameValue\";import __import___ToPropertyDescriptor from \"./ToPropertyDescriptor\";import __import___Type from \"./Type\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar isPropertyDescriptor = __import____helpers_isPropertyDescriptor;\nvar DefineOwnProperty = __import____helpers_DefineOwnProperty;\n\nvar FromPropertyDescriptor = __import___FromPropertyDescriptor;\nvar IsAccessorDescriptor = __import___IsAccessorDescriptor;\nvar IsDataDescriptor = __import___IsDataDescriptor;\nvar IsPropertyKey = __import___IsPropertyKey;\nvar SameValue = __import___SameValue;\nvar ToPropertyDescriptor = __import___ToPropertyDescriptor;\nvar Type = __import___Type;\n\n// https://262.ecma-international.org/6.0/#sec-definepropertyorthrow\n\nmodule.exports = function DefinePropertyOrThrow(O, P, desc) {\n\tif (Type(O) !== 'Object') {\n\t\tthrow new $TypeError('Assertion failed: Type(O) is not Object');\n\t}\n\n\tif (!IsPropertyKey(P)) {\n\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t}\n\n\tvar Desc = isPropertyDescriptor({\n\t\tType: Type,\n\t\tIsDataDescriptor: IsDataDescriptor,\n\t\tIsAccessorDescriptor: IsAccessorDescriptor\n\t}, desc) ? desc : ToPropertyDescriptor(desc);\n\tif (!isPropertyDescriptor({\n\t\tType: Type,\n\t\tIsDataDescriptor: IsDataDescriptor,\n\t\tIsAccessorDescriptor: IsAccessorDescriptor\n\t}, Desc)) {\n\t\tthrow new $TypeError('Assertion failed: Desc is not a valid Property Descriptor');\n\t}\n\n\treturn DefineOwnProperty(\n\t\tIsDataDescriptor,\n\t\tSameValue,\n\t\tFromPropertyDescriptor,\n\t\tO,\n\t\tP,\n\t\tDesc\n\t);\n};\n", "import __import____GetIntrinsic_js from \"../GetIntrinsic.js\";import __import___DefinePropertyOrThrow from \"./DefinePropertyOrThrow\";'use strict';\n\nvar GetIntrinsic = __import____GetIntrinsic_js;\n\nvar $construct = GetIntrinsic('%Reflect.construct%', true);\n\nvar DefinePropertyOrThrow = __import___DefinePropertyOrThrow;\ntry {\n\tDefinePropertyOrThrow({}, '', { '[[Get]]': function () {} });\n} catch (e) {\n\t// Accessor properties aren't supported\n\tDefinePropertyOrThrow = null;\n}\n\n// https://262.ecma-international.org/6.0/#sec-isconstructor\n\nif (DefinePropertyOrThrow && $construct) {\n\tvar isConstructorMarker = {};\n\tvar badArrayLike = {};\n\tDefinePropertyOrThrow(badArrayLike, 'length', {\n\t\t'[[Get]]': function () {\n\t\t\tthrow isConstructorMarker;\n\t\t},\n\t\t'[[Enumerable]]': true\n\t});\n\n\tmodule.exports = function IsConstructor(argument) {\n\t\ttry {\n\t\t\t// `Reflect.construct` invokes `IsConstructor(target)` before `Get(args, 'length')`:\n\t\t\t$construct(argument, badArrayLike);\n\t\t} catch (err) {\n\t\t\treturn err === isConstructorMarker;\n\t\t}\n\t};\n} else {\n\tmodule.exports = function IsConstructor(argument) {\n\t\t// unfortunately there's no way to truly check this without try/catch `new argument` in old environments\n\t\treturn typeof argument === 'function' && !!argument.prototype;\n\t};\n}\n", "import __import_getIntrinsic from \"get-intrinsic\";import __import___IsConstructor from \"./IsConstructor\";import __import___Type from \"./Type\";'use strict';\n\nvar GetIntrinsic = __import_getIntrinsic;\n\nvar $species = GetIntrinsic('%Symbol.species%', true);\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar IsConstructor = __import___IsConstructor;\nvar Type = __import___Type;\n\n// https://262.ecma-international.org/6.0/#sec-speciesconstructor\n\nmodule.exports = function SpeciesConstructor(O, defaultConstructor) {\n\tif (Type(O) !== 'Object') {\n\t\tthrow new $TypeError('Assertion failed: Type(O) is not Object');\n\t}\n\tvar C = O.constructor;\n\tif (typeof C === 'undefined') {\n\t\treturn defaultConstructor;\n\t}\n\tif (Type(C) !== 'Object') {\n\t\tthrow new $TypeError('O.constructor is not an Object');\n\t}\n\tvar S = $species ? C[$species] : void 0;\n\tif (S == null) {\n\t\treturn defaultConstructor;\n\t}\n\tif (IsConstructor(S)) {\n\t\treturn S;\n\t}\n\tthrow new $TypeError('no constructor found');\n};\n", "import __import_esAbstract_2022_CreateRegExpStringIterator from \"es-abstract/2022/CreateRegExpStringIterator\";import __import_esAbstract_2022_Get from \"es-abstract/2022/Get\";import __import_esAbstract_2022_Set from \"es-abstract/2022/Set\";import __import_esAbstract_2022_SpeciesConstructor from \"es-abstract/2022/SpeciesConstructor\";import __import_esAbstract_2022_ToLength from \"es-abstract/2022/ToLength\";import __import_esAbstract_2022_ToString from \"es-abstract/2022/ToString\";import __import_esAbstract_2022_Type from \"es-abstract/2022/Type\";import __import_regexp_prototype_flags from \"regexp.prototype.flags\";import __import_callBind_callBound from \"call-bind/callBound\";'use strict';\n\n// var Construct = require('es-abstract/2022/Construct');\nvar CreateRegExpStringIterator = __import_esAbstract_2022_CreateRegExpStringIterator;\nvar Get = __import_esAbstract_2022_Get;\nvar Set = __import_esAbstract_2022_Set;\nvar SpeciesConstructor = __import_esAbstract_2022_SpeciesConstructor;\nvar ToLength = __import_esAbstract_2022_ToLength;\nvar ToString = __import_esAbstract_2022_ToString;\nvar Type = __import_esAbstract_2022_Type;\nvar flagsGetter = __import_regexp_prototype_flags;\nvar callBound = __import_callBind_callBound;\n\nvar $indexOf = callBound('String.prototype.indexOf');\n\nvar OrigRegExp = RegExp;\n\nvar supportsConstructingWithFlags = 'flags' in RegExp.prototype;\n\nvar constructRegexWithFlags = function constructRegex(C, R) {\n\tvar matcher;\n\t// workaround for older engines that lack RegExp.prototype.flags\n\tvar flags = 'flags' in R ? Get(R, 'flags') : ToString(flagsGetter(R));\n\tif (supportsConstructingWithFlags && typeof flags === 'string') {\n\t\tmatcher = new C(R, flags);\n\t} else if (C === OrigRegExp) {\n\t\t// workaround for older engines that can not construct a RegExp with flags\n\t\tmatcher = new C(R.source, flags);\n\t} else {\n\t\tmatcher = new C(R, flags);\n\t}\n\treturn { flags: flags, matcher: matcher };\n};\n\nvar regexMatchAll = function SymbolMatchAll(string) {\n\tvar R = this;\n\tif (Type(R) !== 'Object') {\n\t\tthrow new TypeError('\"this\" value must be an Object');\n\t}\n\tvar S = ToString(string);\n\tvar C = SpeciesConstructor(R, OrigRegExp);\n\n\tvar tmp = constructRegexWithFlags(C, R);\n\t// var flags = ToString(Get(R, 'flags'));\n\tvar flags = tmp.flags;\n\t// var matcher = Construct(C, [R, flags]);\n\tvar matcher = tmp.matcher;\n\n\tvar lastIndex = ToLength(Get(R, 'lastIndex'));\n\tSet(matcher, 'lastIndex', lastIndex, true);\n\tvar global = $indexOf(flags, 'g') > -1;\n\tvar fullUnicode = $indexOf(flags, 'u') > -1;\n\treturn CreateRegExpStringIterator(matcher, S, global, fullUnicode);\n};\n\nvar defineP = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nif (defineP && gOPD) {\n\tvar desc = gOPD(regexMatchAll, 'name');\n\tif (desc && desc.configurable) {\n\t\tdefineP(regexMatchAll, 'name', { value: '[Symbol.matchAll]' });\n\t}\n}\n\nmodule.exports = regexMatchAll;\n", "import __import_hasSymbols from \"has-symbols\";import __import___regexpMatchall from \"./regexp-matchall\";'use strict';\n\nvar hasSymbols = __import_hasSymbols();\nvar regexpMatchAll = __import___regexpMatchall;\n\nmodule.exports = function getRegExpMatchAllPolyfill() {\n\tif (!hasSymbols || typeof Symbol.matchAll !== 'symbol' || typeof RegExp.prototype[Symbol.matchAll] !== 'function') {\n\t\treturn regexpMatchAll;\n\t}\n\treturn RegExp.prototype[Symbol.matchAll];\n};\n", "import __import_esAbstract_2022_Call from \"es-abstract/2022/Call\";import __import_esAbstract_2022_Get from \"es-abstract/2022/Get\";import __import_esAbstract_2022_GetMethod from \"es-abstract/2022/GetMethod\";import __import_esAbstract_2022_IsRegExp from \"es-abstract/2022/IsRegExp\";import __import_esAbstract_2022_ToString from \"es-abstract/2022/ToString\";import __import_esAbstract_2022_RequireObjectCoercible from \"es-abstract/2022/RequireObjectCoercible\";import __import_callBind_callBound from \"call-bind/callBound\";import __import_hasSymbols from \"has-symbols\";import __import_regexp_prototype_flags from \"regexp.prototype.flags\";import __import___polyfillRegexpMatchall from \"./polyfill-regexp-matchall\";'use strict';\n\nvar Call = __import_esAbstract_2022_Call;\nvar Get = __import_esAbstract_2022_Get;\nvar GetMethod = __import_esAbstract_2022_GetMethod;\nvar IsRegExp = __import_esAbstract_2022_IsRegExp;\nvar ToString = __import_esAbstract_2022_ToString;\nvar RequireObjectCoercible = __import_esAbstract_2022_RequireObjectCoercible;\nvar callBound = __import_callBind_callBound;\nvar hasSymbols = __import_hasSymbols();\nvar flagsGetter = __import_regexp_prototype_flags;\n\nvar $indexOf = callBound('String.prototype.indexOf');\n\nvar regexpMatchAllPolyfill = __import___polyfillRegexpMatchall;\n\nvar getMatcher = function getMatcher(regexp) { // eslint-disable-line consistent-return\n\tvar matcherPolyfill = regexpMatchAllPolyfill();\n\tif (hasSymbols && typeof Symbol.matchAll === 'symbol') {\n\t\tvar matcher = GetMethod(regexp, Symbol.matchAll);\n\t\tif (matcher === RegExp.prototype[Symbol.matchAll] && matcher !== matcherPolyfill) {\n\t\t\treturn matcherPolyfill;\n\t\t}\n\t\treturn matcher;\n\t}\n\t// fallback for pre-Symbol.matchAll environments\n\tif (IsRegExp(regexp)) {\n\t\treturn matcherPolyfill;\n\t}\n};\n\nmodule.exports = function matchAll(regexp) {\n\tvar O = RequireObjectCoercible(this);\n\n\tif (typeof regexp !== 'undefined' && regexp !== null) {\n\t\tvar isRegExp = IsRegExp(regexp);\n\t\tif (isRegExp) {\n\t\t\t// workaround for older engines that lack RegExp.prototype.flags\n\t\t\tvar flags = 'flags' in regexp ? Get(regexp, 'flags') : flagsGetter(regexp);\n\t\t\tRequireObjectCoercible(flags);\n\t\t\tif ($indexOf(ToString(flags), 'g') < 0) {\n\t\t\t\tthrow new TypeError('matchAll requires a global regular expression');\n\t\t\t}\n\t\t}\n\n\t\tvar matcher = getMatcher(regexp);\n\t\tif (typeof matcher !== 'undefined') {\n\t\t\treturn Call(matcher, regexp, [O]);\n\t\t}\n\t}\n\n\tvar S = ToString(O);\n\t// var rx = RegExpCreate(regexp, 'g');\n\tvar rx = new RegExp(regexp, 'g');\n\treturn Call(getMatcher(rx), rx, [S]);\n};\n", "import __import___implementation from \"./implementation\";'use strict';\n\nvar implementation = __import___implementation;\n\nmodule.exports = function getPolyfill() {\n\tif (String.prototype.matchAll) {\n\t\ttry {\n\t\t\t''.matchAll(RegExp.prototype);\n\t\t} catch (e) {\n\t\t\treturn String.prototype.matchAll;\n\t\t}\n\t}\n\treturn implementation;\n};\n", "import __import_defineProperties from \"define-properties\";import __import_hasSymbols from \"has-symbols\";import __import___polyfill from \"./polyfill\";import __import___polyfillRegexpMatchall from \"./polyfill-regexp-matchall\";'use strict';\n\nvar define = __import_defineProperties;\nvar hasSymbols = __import_hasSymbols();\nvar getPolyfill = __import___polyfill;\nvar regexpMatchAllPolyfill = __import___polyfillRegexpMatchall;\n\nvar defineP = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nmodule.exports = function shimMatchAll() {\n\tvar polyfill = getPolyfill();\n\tdefine(\n\t\tString.prototype,\n\t\t{ matchAll: polyfill },\n\t\t{ matchAll: function () { return String.prototype.matchAll !== polyfill; } }\n\t);\n\tif (hasSymbols) {\n\t\t// eslint-disable-next-line no-restricted-properties\n\t\tvar symbol = Symbol.matchAll || (Symbol['for'] ? Symbol['for']('Symbol.matchAll') : Symbol('Symbol.matchAll'));\n\t\tdefine(\n\t\t\tSymbol,\n\t\t\t{ matchAll: symbol },\n\t\t\t{ matchAll: function () { return Symbol.matchAll !== symbol; } }\n\t\t);\n\n\t\tif (defineP && gOPD) {\n\t\t\tvar desc = gOPD(Symbol, symbol);\n\t\t\tif (!desc || desc.configurable) {\n\t\t\t\tdefineP(Symbol, symbol, {\n\t\t\t\t\tconfigurable: false,\n\t\t\t\t\tenumerable: false,\n\t\t\t\t\tvalue: symbol,\n\t\t\t\t\twritable: false\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tvar regexpMatchAll = regexpMatchAllPolyfill();\n\t\tvar func = {};\n\t\tfunc[symbol] = regexpMatchAll;\n\t\tvar predicate = {};\n\t\tpredicate[symbol] = function () {\n\t\t\treturn RegExp.prototype[symbol] !== regexpMatchAll;\n\t\t};\n\t\tdefine(RegExp.prototype, func, predicate);\n\t}\n\treturn polyfill;\n};\n", "import __import_callBind from \"call-bind\";import __import_defineProperties from \"define-properties\";import __import___implementation from \"./implementation\";import __import___polyfill from \"./polyfill\";import __import___shim from \"./shim\";'use strict';\n\nvar callBind = __import_callBind;\nvar define = __import_defineProperties;\n\nvar implementation = __import___implementation;\nvar getPolyfill = __import___polyfill;\nvar shim = __import___shim;\n\nvar boundMatchAll = callBind(implementation);\n\ndefine(boundMatchAll, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = boundMatchAll;\n", "// ISC @ Julien Fontanet\n\n\"use strict\";\n\n// ===================================================================\n\nvar construct = typeof Reflect !== \"undefined\" ? Reflect.construct : undefined;\nvar defineProperty = Object.defineProperty;\n\n// -------------------------------------------------------------------\n\nvar captureStackTrace = Error.captureStackTrace;\nif (captureStackTrace === undefined) {\n captureStackTrace = function captureStackTrace(error) {\n var container = new Error();\n\n defineProperty(error, \"stack\", {\n configurable: true,\n get: function getStack() {\n var stack = container.stack;\n\n // Replace property with value for faster future accesses.\n defineProperty(this, \"stack\", {\n configurable: true,\n value: stack,\n writable: true,\n });\n\n return stack;\n },\n set: function setStack(stack) {\n defineProperty(error, \"stack\", {\n configurable: true,\n value: stack,\n writable: true,\n });\n },\n });\n };\n}\n\n// -------------------------------------------------------------------\n\nfunction BaseError(message) {\n if (message !== undefined) {\n defineProperty(this, \"message\", {\n configurable: true,\n value: message,\n writable: true,\n });\n }\n\n var cname = this.constructor.name;\n if (cname !== undefined && cname !== this.name) {\n defineProperty(this, \"name\", {\n configurable: true,\n value: cname,\n writable: true,\n });\n }\n\n captureStackTrace(this, this.constructor);\n}\n\nBaseError.prototype = Object.create(Error.prototype, {\n // See: https://github.com/JsCommunity/make-error/issues/4\n constructor: {\n configurable: true,\n value: BaseError,\n writable: true,\n },\n});\n\n// -------------------------------------------------------------------\n\n// Sets the name of a function if possible (depends of the JS engine).\nvar setFunctionName = (function() {\n function setFunctionName(fn, name) {\n return defineProperty(fn, \"name\", {\n configurable: true,\n value: name,\n });\n }\n try {\n var f = function() {};\n setFunctionName(f, \"foo\");\n if (f.name === \"foo\") {\n return setFunctionName;\n }\n } catch (_) {}\n})();\n\n// -------------------------------------------------------------------\n\nfunction makeError(constructor, super_) {\n if (super_ == null || super_ === Error) {\n super_ = BaseError;\n } else if (typeof super_ !== \"function\") {\n throw new TypeError(\"super_ should be a function\");\n }\n\n var name;\n if (typeof constructor === \"string\") {\n name = constructor;\n constructor =\n construct !== undefined\n ? function() {\n return construct(super_, arguments, this.constructor);\n }\n : function() {\n super_.apply(this, arguments);\n };\n\n // If the name can be set, do it once and for all.\n if (setFunctionName !== undefined) {\n setFunctionName(constructor, name);\n name = undefined;\n }\n } else if (typeof constructor !== \"function\") {\n throw new TypeError(\"constructor should be either a string or a function\");\n }\n\n // Also register the super constructor also as `constructor.super_` just\n // like Node's `util.inherits()`.\n //\n // eslint-disable-next-line dot-notation\n constructor.super_ = constructor[\"super\"] = super_;\n\n var properties = {\n constructor: {\n configurable: true,\n value: constructor,\n writable: true,\n },\n };\n\n // If the name could not be set on the constructor, set it on the\n // prototype.\n if (name !== undefined) {\n properties.name = {\n configurable: true,\n value: name,\n writable: true,\n };\n }\n constructor.prototype = Object.create(super_.prototype, properties);\n\n return constructor;\n}\nexports = module.exports = makeError;\nexports.BaseError = BaseError;\n", "'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn Object.propertyIsEnumerable.call(target, symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n", "'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n", "/*!\n * isobject <https://github.com/jonschlinkert/isobject>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nmodule.exports = function isObject(val) {\n return val != null && typeof val === 'object' && Array.isArray(val) === false;\n};\n", "import __import_isobject from \"isobject\";/*!\n * is-plain-object <https://github.com/jonschlinkert/is-plain-object>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nvar isObject = __import_isobject;\n\nfunction isObjectObject(o) {\n return isObject(o) === true\n && Object.prototype.toString.call(o) === '[object Object]';\n}\n\nmodule.exports = function isPlainObject(o) {\n var ctor,prot;\n\n if (isObjectObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (typeof ctor !== 'function') return false;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObjectObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n};\n", "import __import_isPlainObject from \"is-plain-object\";/*!\n * is-extendable <https://github.com/jonschlinkert/is-extendable>\n *\n * Copyright (c) 2015-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nvar isPlainObject = __import_isPlainObject;\n\nmodule.exports = function isExtendable(val) {\n return isPlainObject(val) || typeof val === 'function' || Array.isArray(val);\n};\n", "import __import_isExtendable from \"is-extendable\";/*!\n * object.omit <https://github.com/jonschlinkert/object.omit>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nvar isObject = __import_isExtendable;\n\nmodule.exports = function omit(obj, props, fn) {\n if (!isObject(obj)) return {};\n\n if (typeof props === 'function') {\n fn = props;\n props = [];\n }\n\n if (typeof props === 'string') {\n props = [props];\n }\n\n var isFunction = typeof fn === 'function';\n var keys = Object.keys(obj);\n var res = {};\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var val = obj[key];\n\n if (!props || (props.indexOf(key) === -1 && (!isFunction || fn(val, key, obj)))) {\n res[key] = val;\n }\n }\n return res;\n};\n", "import __import_isobject from \"isobject\";/*!\n * object.pick <https://github.com/jonschlinkert/object.pick>\n *\n * Copyright (c) 2014-2015 Jon Schlinkert, contributors.\n * Licensed under the MIT License\n */\n\n'use strict';\n\nvar isObject = __import_isobject;\n\nmodule.exports = function pick(obj, keys) {\n if (!isObject(obj) && typeof obj !== 'function') {\n return {};\n }\n\n var res = {};\n if (typeof keys === 'string') {\n if (keys in obj) {\n res[keys] = obj[keys];\n }\n return res;\n }\n\n var len = keys.length;\n var idx = -1;\n\n while (++idx < len) {\n var key = keys[idx];\n if (key in obj) {\n res[key] = obj[key];\n }\n }\n return res;\n};\n", "'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , undef;\n\n/**\n * Decode a URI encoded string.\n *\n * @param {String} input The URI encoded string.\n * @returns {String|Null} The decoded string.\n * @api private\n */\nfunction decode(input) {\n try {\n return decodeURIComponent(input.replace(/\\+/g, ' '));\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Attempts to encode a given input.\n *\n * @param {String} input The string that needs to be encoded.\n * @returns {String|Null} The encoded string.\n * @api private\n */\nfunction encode(input) {\n try {\n return encodeURIComponent(input);\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Simple query string parser.\n *\n * @param {String} query The query string that needs to be parsed.\n * @returns {Object}\n * @api public\n */\nfunction querystring(query) {\n var parser = /([^=?#&]+)=?([^&]*)/g\n , result = {}\n , part;\n\n while (part = parser.exec(query)) {\n var key = decode(part[1])\n , value = decode(part[2]);\n\n //\n // Prevent overriding of existing properties. This ensures that build-in\n // methods like `toString` or __proto__ are not overriden by malicious\n // querystrings.\n //\n // In the case if failed decoding, we want to omit the key/value pairs\n // from the result.\n //\n if (key === null || value === null || key in result) continue;\n result[key] = value;\n }\n\n return result;\n}\n\n/**\n * Transform a query string to an object.\n *\n * @param {Object} obj Object that should be transformed.\n * @param {String} prefix Optional prefix.\n * @returns {String}\n * @api public\n */\nfunction querystringify(obj, prefix) {\n prefix = prefix || '';\n\n var pairs = []\n , value\n , key;\n\n //\n // Optionally prefix with a '?' if needed\n //\n if ('string' !== typeof prefix) prefix = '?';\n\n for (key in obj) {\n if (has.call(obj, key)) {\n value = obj[key];\n\n //\n // Edge cases where we actually want to encode the value to an empty\n // string instead of the stringified value.\n //\n if (!value && (value === null || value === undef || isNaN(value))) {\n value = '';\n }\n\n key = encode(key);\n value = encode(value);\n\n //\n // If we failed to encode the strings, we should bail out as we don't\n // want to add invalid strings to the query.\n //\n if (key === null || value === null) continue;\n pairs.push(key +'='+ value);\n }\n }\n\n return pairs.length ? prefix + pairs.join('&') : '';\n}\n\n//\n// Expose the module.\n//\nexports.stringify = querystringify;\nexports.parse = querystring;\n", "import { Remirror } from '@remirror/react'\nimport { createContextState } from 'create-context-state'\nimport React, { memo, useCallback, useMemo } from 'react'\nimport Text from '../Text'\nimport type { EditorDelegate } from '../../types'\nimport { ProsemirrorDevTools } from '@remirror/dev'\nimport { createSourceCodeDelegate } from './delegate'\nimport ErrorBoundary from '../ErrorBoundary'\nimport type { EditorProps } from '../Editor'\nimport type { Extension, RemirrorEventListener } from 'remirror'\n\ntype Context = Props\n\ntype Props = {\n markText: EditorDelegate\n} & Partial<EditorProps>\n\nconst [SourceEditorProvider, useSourceCodeEditor] = createContextState<Context, Props>(\n ({ props }) => {\n return {\n ...props,\n }\n },\n)\n\nconst SourceCodeEditorCore = memo((props: { markdownToolBar?: React.ReactNode[], onChange: RemirrorEventListener<Extension> }) => {\n const { markdownToolBar } = props\n const { content, markText, hooks, isTesting, editable } = useSourceCodeEditor()\n\n let initialCntent\n\n try {\n initialCntent = markText.stringToDoc(content!)\n } catch (error) {\n return <ErrorBoundary hasError error={error} />\n }\n\n return (\n <ErrorBoundary>\n <Remirror\n manager={markText.manager}\n initialContent={initialCntent}\n hooks={hooks}\n editable={editable}\n onChange={props.onChange}\n >\n <Text className='h-full w-full overflow-auto px-0' style={{ padding: 0 }} />\n {markdownToolBar || null}\n {isTesting ? <ProsemirrorDevTools /> : null}\n </Remirror>\n </ErrorBoundary>\n )\n})\n\n/**\n * The editor which is used to create the annotation. Supports formatting.\n */\nconst SourceEditor: React.FC<EditorProps> = (props) => {\n const { content, delegate, isTesting, hooks, markdownToolBar } = props\n\n const editorDelegate = useMemo(() => delegate ?? createSourceCodeDelegate(), [delegate])\n\n const handleChange: RemirrorEventListener<Extension> = useCallback(\n (params) => {\n try {\n const textContent = editorDelegate.docToString(params.state.doc)\n props.onChange?.(params, textContent)\n } catch (error) {\n console.error(error)\n }\n },\n [editorDelegate, props],\n )\n\n return (\n <SourceEditorProvider\n content={content}\n isTesting={isTesting}\n markText={editorDelegate}\n hooks={hooks}\n >\n <SourceCodeEditorCore markdownToolBar={markdownToolBar} onChange={handleChange} />\n </SourceEditorProvider>\n )\n}\n\nexport default memo(SourceEditor)\n\nexport * from './delegate'\n", "import { useRemirrorContext } from '@remirror/react'\nimport type { CSSProperties, FC } from 'react'\nimport React from 'react'\nimport styled, { css } from 'styled-components'\n\nconst Container = styled.div<{ codeEditor?: boolean }>`\n position: relative;\n padding: 0.5em 1em 1em;\n white-space: pre-wrap;\n min-height: 100px;\n flex: 1;\n\n .remirror-is-empty::before {\n position: absolute;\n pointer-events: none;\n height: 0;\n font-style: italic;\n content: attr(data-placeholder);\n }\n\n .remirror-editor {\n /* height: 100%; */\n outline: none;\n }\n\n .cm-editor {\n height: 100%;\n }\n\n .remirror-floating-popover {\n /* padding: var(--rmr-space-2); */\n padding: 0;\n border: none;\n max-height: calc(100vh - 56px);\n }\n\n .remirror-positioner {\n position: absolute;\n min-width: 1px;\n min-height: 1px;\n pointer-events: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n cursor: none;\n z-index: -1;\n }\n\n .remirror-positioner-widget {\n width: 0;\n height: 0;\n position: absolute;\n }\n\n .remirror-emoji-wrapper img {\n width: 1em;\n vertical-align: middle;\n background-color: transparent;\n }\n\n ${(props) =>\n props.codeEditor &&\n css`\n padding: 0;\n min-height: unset;\n `}\n`\n\ninterface ITextProps {\n children?: React.ReactNode\n className?: string\n style?: CSSProperties\n codeEditor?: boolean\n}\n\nconst Text: FC<ITextProps> = ({ children, ...props }) => {\n const { getRootProps } = useRemirrorContext()\n\n return (\n <Container {...props} {...getRootProps()}>\n {children}\n </Container>\n )\n}\n\nexport default Text\n", "import { createReactManager } from '@remirror/react'\nimport type { StringToDoc, DocToString, EditorDelegate } from '../../types'\nimport { DocExtension } from 'remirror/extensions'\nimport type { RemirrorManager } from 'remirror'\nimport { LineCodeMirrorExtension } from '../../extensions/CodeMirror/codemirror-extension'\nimport { markdown } from '@codemirror/lang-markdown'\nimport { basicSetup } from '../../extensions/CodeMirror/setup'\nimport { CountExtension } from '@remirror/extension-count'\n\nexport function createSourceCodeManager(): RemirrorManager<any> {\n return createReactManager(() => [\n new CountExtension({}),\n new DocExtension({ content: 'codeMirror' }),\n new LineCodeMirrorExtension({\n hideDecoration: true,\n extensions: [basicSetup, markdown()],\n }),\n ])\n}\n\nexport const createSourceCodeDelegate = (): EditorDelegate<any> => {\n const manager = createSourceCodeManager()\n\n const stringToDoc: StringToDoc = (content: string) => {\n const schema = manager.schema\n const attrs = { language: 'markdown' }\n const child = content ? schema.text(content) : undefined\n return schema.nodes.doc.create({}, schema.nodes.codeMirror.create(attrs, child))\n }\n\n const docToString: DocToString = (doc) => {\n return doc.textContent\n }\n\n return { manager, stringToDoc, docToString, view: 'SourceCode' }\n}\n", "import type { Node, NodeType, Schema } from '@remirror/pm/model'\nimport { Mark } from '@remirror/pm/model'\nimport MarkdownIt from 'markdown-it'\nimport type Token from 'markdown-it/lib/token'\n\nimport markdownItListCheckbox from './markdown-it-list-checkbox'\n\nimport type {\n BlockParserRule,\n ContextParserRule,\n InlineParserRule,\n ParserRule,\n ParserRuleContext,\n TextParserRule,\n} from './parser-type'\nimport { ParserRuleType } from './parser-type'\nimport MarkdownItHtmlInline from './markdown-it-html-inline'\n\ninterface StackItem {\n type: NodeType\n attrs?: Record<string, any>\n content: Node[]\n}\n\nexport type TokenHandler = (state: MarkdownParseState, tok: Token) => void\nexport type TokenHandlers = Record<string, TokenHandler>\n\nexport class UnknowMarkdownItTokenError extends Error {\n constructor(\n public tokenType: string,\n public supportedTokenTypes: string[],\n ) {\n super(`MarkdownIt token type '${tokenType}' not supported. `)\n this.tokenType = tokenType\n }\n}\n\nexport class MarkdownParseState {\n private schema: Schema\n private marks: readonly Mark[]\n private tokenHandlers: TokenHandlers\n private contextStack: ParserRuleContext[]\n\n public stack: StackItem[]\n\n public constructor(schema: Schema, tokenHandlers: TokenHandlers) {\n this.schema = schema\n this.stack = [{ type: schema.topNodeType, content: [] }]\n this.contextStack = []\n this.marks = Mark.none\n this.tokenHandlers = tokenHandlers\n }\n\n public top(): StackItem {\n return this.stack[this.stack.length - 1]\n }\n\n public push(node: Node): void {\n if (this.stack.length) this.top().content.push(node)\n }\n\n // Adds the given text to the current position in the document,\n // using the current marks as styling.\n public addText(text: string): void {\n if (!text) return\n\n const top = this.top()\n const nodes = top.content\n const last: Node | undefined = nodes[nodes.length - 1]\n const node = this.schema.text(text, this.marks)\n let merged: Node | undefined\n if (last && (merged = this.mergeTextNode(last, node))) nodes[nodes.length - 1] = merged\n else nodes.push(node)\n }\n\n private mergeTextNode(a: Node, b: Node): Node | undefined {\n if (a.isText && b.isText && Mark.sameSet(a.marks, b.marks)) {\n const text: string = (a.text || '') + (b.text || '')\n return a.type.schema.text(text, a.marks)\n }\n }\n\n // Adds the given mark to the set of active marks.\n public openMark(mark: Mark): void {\n this.marks = mark.addToSet(this.marks)\n }\n\n // Removes the given mark from the set of active marks.\n public closeMark(mark: Mark): void {\n this.marks = mark.removeFromSet(this.marks)\n }\n\n public parseTokens(toks: Token[]): void {\n for (const tok of toks) {\n const handler = this.tokenHandlers[tok.type]\n if (!handler) return\n if (!handler) throw new UnknowMarkdownItTokenError(tok.type, Object.keys(this.tokenHandlers))\n handler(this, tok)\n }\n }\n\n // Add a node at the current position.\n public addNode(type: NodeType, attrs?: Record<string, any>, content?: Node[]): Node {\n const node = type.createAndFill(attrs, content, this.marks)\n if (!node) {\n throw new Error(`unexpected error: node is empty while creating ${type.name} node`)\n }\n this.push(node)\n return node\n }\n\n // Wrap subsequent content in a node of the given type.\n public openNode(type: NodeType, attrs?: Record<string, any>): void {\n this.stack.push({ type: type, attrs: attrs, content: [] })\n }\n\n // Close and return the node that is currently on top of the stack.\n public closeNode(): Node {\n if (this.marks.length) this.marks = Mark.none\n const info = this.stack.pop()\n if (!info) {\n throw new Error('unexpected error: info is empty')\n }\n return this.addNode(info.type, info.attrs, info.content)\n }\n\n public openContext(context: ParserRuleContext): void {\n this.contextStack.push(context)\n }\n\n public closeContext() {\n this.contextStack.pop()\n }\n\n public topContext(): ParserRuleContext | undefined {\n return this.contextStack[this.contextStack.length - 1]\n }\n}\n\nfunction withoutTrailingNewline(str: string): string {\n return str.endsWith('\\n') ? str.slice(0, str.length - 1) : str\n}\n\nfunction buildBlockTokenHandler(\n parserRule: BlockParserRule,\n handlers: TokenHandlers,\n schema: Schema,\n): void {\n const nodeType: NodeType = schema.nodes[parserRule.node]\n if (nodeType === undefined) {\n throw new RangeError(`Can't find block type '${parserRule.node}'`)\n }\n if (parserRule.hasOpenClose) {\n handlers[parserRule.token + '_open'] = (state: MarkdownParseState, tok: Token) => {\n const attrs = parserRule.getAttrs ? parserRule.getAttrs(tok) : undefined\n state.openNode(nodeType, attrs)\n }\n handlers[parserRule.token + '_close'] = (state: MarkdownParseState) => {\n state.closeNode()\n }\n } else {\n handlers[parserRule.token] = (state: MarkdownParseState, tok: Token) => {\n const attrs = parserRule.getAttrs ? parserRule.getAttrs(tok) : undefined\n state.openNode(nodeType, attrs)\n state.addText(withoutTrailingNewline(tok.content))\n state.closeNode()\n }\n }\n}\n\nfunction buildContextTokenHandler(parserRule: ContextParserRule, handlers: TokenHandlers): void {\n handlers[parserRule.token + '_open'] = (state: MarkdownParseState) => {\n state.openContext(parserRule.context)\n }\n handlers[parserRule.token + '_close'] = (state: MarkdownParseState) => {\n state.closeContext()\n }\n}\n\nfunction buildInlineNodeHandler(\n parserRule: InlineParserRule,\n handlers: TokenHandlers,\n schema: Schema,\n) {\n const nodeType: NodeType = schema.nodes[parserRule.token]\n if (nodeType === undefined) {\n throw new RangeError(`Can't find inline type '${parserRule.token}'`)\n }\n handlers[parserRule.token] = (state: MarkdownParseState, tok: Token) => {\n const attrs = tok.attrs || null\n const inlinNode = schema.nodes[tok.type]?.createAndFill(attrs)\n if (inlinNode) {\n state.push(inlinNode)\n }\n }\n}\n\nfunction buildTextTokenHandler(parserRule: TextParserRule, handlers: TokenHandlers): void {\n handlers[parserRule.token] = (state: MarkdownParseState, tok: Token) => {\n state.addText(parserRule.getText(tok))\n }\n}\n\nfunction buildTokenHandlers(schema: Schema, parserRules: ParserRule[]): TokenHandlers {\n const handlers: TokenHandlers = {}\n for (const parserRule of parserRules) {\n switch (parserRule.type) {\n case ParserRuleType.text:\n buildTextTokenHandler(parserRule, handlers)\n break\n case ParserRuleType.block:\n buildBlockTokenHandler(parserRule, handlers, schema)\n break\n case ParserRuleType.context:\n buildContextTokenHandler(parserRule, handlers)\n break\n case ParserRuleType.ignore:\n handlers[parserRule.token] = () => {}\n break\n case ParserRuleType.inline:\n buildInlineNodeHandler(parserRule, handlers, schema)\n break\n case ParserRuleType.free:\n handlers[parserRule.token] = parserRule.handler\n break\n default:\n throw new Error(`unknown parser rule type`)\n }\n }\n\n return handlers\n}\n\nexport class MarkdownParser {\n private schema: Schema\n private tokenizer: MarkdownIt\n private tokenHandlers: TokenHandlers\n\n public constructor(schema: Schema, parserRules: ParserRule[]) {\n this.schema = schema\n this.tokenizer = MarkdownIt('commonmark', { html: true })\n .disable(['emphasis', 'autolink', 'backticks', 'entity'])\n .enable(['table'])\n .use(markdownItListCheckbox)\n .use(MarkdownItHtmlInline)\n\n this.tokenHandlers = buildTokenHandlers(schema, parserRules)\n }\n\n public parse(text: string): Node {\n const state = new MarkdownParseState(this.schema, this.tokenHandlers)\n let doc: Node\n const mdTokens: Token[] = this.tokenizer.parse(text, {})\n console.log('tokens', mdTokens)\n state.parseTokens(mdTokens)\n do {\n doc = state.closeNode()\n } while (state.stack.length)\n return doc\n }\n}\n", "import type MarkdownIt from \"markdown-it\"\nimport type Core from \"markdown-it/lib/parser_core\"\nimport type StateCore from \"markdown-it/lib/rules_core/state_core\"\nimport Token from \"markdown-it/lib/token\"\n\nfunction isBulletListItemToken(t: Token) {\n return t.type === \"list_item_open\" && [\"*\", \"-\"].includes(t.markup)\n}\nfunction isParagraphOpenToken(t: Token) {\n return t.type === \"paragraph_open\"\n}\nfunction isInlineToken(t: Token) {\n return t.type === \"inline\"\n}\n\nconst rule: Core.RuleCore = (state: StateCore) => {\n let edited = false\n const tokens = state.tokens\n const tokensLength = tokens.length\n for (let i = tokensLength - 3; i >= 0; i--) {\n if (isBulletListItemToken(tokens[i]) && isParagraphOpenToken(tokens[i + 1]) && isInlineToken(tokens[i + 2])) {\n const inlineToken = tokens[i + 2]\n const match = /^\\[([ |x])\\]\\s?/.exec(inlineToken.content)\n if (match) {\n const checked = match[1] === \"x\"\n inlineToken.content = inlineToken.content.slice(match[0].length)\n const checkboxToken = new Token(\"list_checkbox\", \"input\", 0)\n checkboxToken.attrPush([\"type\", \"checkbox\"])\n if (checked) {\n checkboxToken.attrPush([\"checked\", \"\"])\n }\n tokens.splice(i + 1, 0, checkboxToken)\n edited = true\n }\n }\n }\n return edited\n}\n\n// A markdown-it plugin for selectable list checkbox\nfunction MarkdownItListCheckbox(md: MarkdownIt) {\n md.core.ruler.push(\"markdown-it-list-checkbox\", rule)\n}\n\nexport default MarkdownItListCheckbox\n", "import type MarkdownIt from 'markdown-it'\nimport type Core from 'markdown-it/lib/parser_core'\nimport type StateCore from 'markdown-it/lib/rules_core/state_core'\nimport Token from 'markdown-it/lib/token'\nimport { getAttrsBySignalHtmlContent, getTagName, isClosingTag, isSingleNode } from '@/utils/html'\n\nexport const needSplitInlineHtmlTokenTags = ['img', 'iframe']\n\nexport const excludeHtmlInlineNodes = ['html_image', 'iframe_inline']\n\nconst typeMap: Record<string, string> = {\n img: 'html_image',\n iframe: 'iframe_inline',\n}\n\nfunction splitHtmlInlineTokens(t: Token) {\n if (!t.children) return []\n\n return t.children.map((child) => {\n if (\n isHtmlInlineToken(child) &&\n needSplitInlineHtmlTokenTags.includes(child.tag) &&\n !isClosingTag(child.content)\n ) {\n const newToken = new Token(typeMap[child.tag], '', 0)\n newToken.content = child.content\n newToken.attrs = getAttrsBySignalHtmlContent(child.content)\n return newToken\n } else {\n const token = new Token('text', '', 0)\n token.content = child.content\n return token\n }\n })\n}\n\nfunction isInlineToken(t: Token) {\n return t.type === 'inline'\n}\n\nfunction isHtmlInlineToken(t: Token) {\n return t.type === 'html_inline'\n}\n\nfunction isHtmlBlockToken(t: Token) {\n return t.type === 'html_block'\n}\nfunction hasSplitInlineHtmlToken(t: Token) {\n let res = false\n\n t.children?.forEach((child) => {\n if (isHtmlInlineToken(child)) {\n const tag = getTagName(child.content)\n child.tag = tag\n if (needSplitInlineHtmlTokenTags.includes(child.tag)) {\n res = true\n }\n }\n })\n\n return res\n}\n\nconst rule: Core.RuleCore = (state: StateCore) => {\n const edited = false\n const tokens = state.tokens\n const tokensLength = tokens.length\n for (let i = tokensLength - 1; i >= 0; i--) {\n const curToken = tokens[i]\n\n if (isInlineToken(curToken)) {\n if (hasSplitInlineHtmlToken(curToken)) {\n tokens.splice(i, 1, ...splitHtmlInlineTokens(curToken))\n }\n } else if (isHtmlBlockToken(curToken)) {\n const tag = getTagName(curToken.content)\n\n if (isSingleNode(curToken.content) && needSplitInlineHtmlTokenTags.includes(tag)) {\n const newToken = new Token(typeMap[tag], '', 0)\n newToken.content = curToken.content\n newToken.attrs = getAttrsBySignalHtmlContent(curToken.content)\n tokens.splice(\n i,\n 1,\n ...[new Token('paragraph_open', '', 0), newToken, new Token('paragraph_close', '', 0)],\n )\n }\n }\n }\n\n return edited\n}\n\nfunction MarkdownItHtmlInline(md: MarkdownIt) {\n md.core.ruler.push('markdown-it-html-inline', rule)\n}\n\nexport default MarkdownItHtmlInline\n", "// @ts-nocheck\nimport HTML from 'html-parse-stringify'\n\nexport function isClosingTag(str: string) {\n const regex = /^<\\/[a-zA-Z0-9]+\\s*>$/\n return regex.test(str)\n}\n\nexport function isSingleNode (html: string) {\n const ast = HTML.parse(html)\n return ast && ast.length === 1\n}\n\nexport const getAttrsBySignalHtmlContent = (html: string) => {\n const ast = HTML.parse(html)\n return ast[0]?.attrs || {}\n}\n\nexport function getTagName(str: string) {\n const regex = /<\\/?([a-zA-Z0-9]+)\\b[^>]*>/\n\n const matches = regex.exec(str)\n\n if (matches && matches.length > 1) {\n return matches[1].toLowerCase()\n }\n\n return ''\n}\n\nexport function isImageElement(el: any): el is HTMLImageElement {\n return el && (el.tagName as string)?.toLocaleUpperCase() === 'IMG'\n}\n\ninterface HTMLAst {\n tag: string\n attrs: Record<string, string> | undefined\n voidElement: boolean\n}\n\nexport function buildHtmlStringFromAst(ast: HTMLAst) {\n let attrs = ''\n\n if (ast.attrs) {\n const filteredAttrs = Object.entries(ast.attrs).filter(([, value]) => value)\n\n if (filteredAttrs.length) {\n attrs = `${filteredAttrs.map(([key, value]) => `${key}=\"${value}\"`).join(' ')}`\n }\n }\n\n if (ast.voidElement) {\n return `<${ast.tag} ${attrs} />`\n }\n\n return `<${ast.tag} ${attrs}></${ast.tag}>`\n}\n", "import type {\n ApplySchemaAttributes,\n CommandFunction,\n KeyBindings,\n NodeSpecOverride,\n} from '@remirror/core'\nimport type { TableSchemaSpec } from '@remirror/extension-tables'\nimport {\n TableCellExtension,\n TableExtension,\n TableHeaderCellExtension,\n TableRowExtension,\n} from '@remirror/extension-tables'\nimport { TextSelection } from '@remirror/pm/state'\n\nimport type { NodeSerializerOptions } from '../../transform'\nimport { ParserRuleType } from '../../transform'\nimport { buildBlockEnterKeymap } from '../../utils/build-block-enter-keymap'\nimport { CellSelection } from '@remirror/pm/tables'\n\nenum TABLE_ALIGEN {\n DEFAULT = 1,\n CENTER = 2,\n RIGHT = 3,\n LEFT = 4,\n}\n\nexport class LineTableExtension extends TableExtension {\n get name() {\n return 'table' as const\n }\n\n createKeymap = (): KeyBindings => {\n const schema = this.store.schema\n\n return buildBlockEnterKeymap(\n /^\\|((?:[^\\|]+\\|){2,})\\s*$/,\n ({ match }) => {\n const texts = match[1]\n .split('|')\n .slice(0, -1) // Remove the empty string at the end\n .map((text) => {\n text = text.trim()\n if (!text) text = ' ' // Prosemirror text doesn't allow empty text\n return schema.text(text)\n })\n\n const cells1 = texts.map((text) => schema.nodes.tableCell.create(null, text)) // first row\n const cells2 = texts.map(() => schema.nodes.tableCell.create(null)) // second row\n const row1 = schema.nodes.tableRow.create(null, cells1)\n const row2 = schema.nodes.tableRow.create(null, cells2)\n const table = schema.nodes.table.create(null, [row1, row2])\n return table\n },\n ({ tr }) => {\n const $cursor = (tr.selection as TextSelection)?.$cursor\n if (!$cursor) {\n return tr\n } else {\n const depth = $cursor.depth - 1\n const pos = $cursor.posAtIndex($cursor.index(depth) - 1, depth)\n const $pos = tr.doc.resolve(pos)\n return tr.setSelection(TextSelection.near($pos))\n }\n },\n )\n }\n\n public fromMarkdown() {\n return [\n {\n type: ParserRuleType.block,\n token: 'table',\n node: this.name,\n hasOpenClose: true,\n },\n { type: ParserRuleType.ignore, token: 'thead_open' },\n { type: ParserRuleType.ignore, token: 'thead_close' },\n { type: ParserRuleType.ignore, token: 'tbody_open' },\n { type: ParserRuleType.ignore, token: 'tbody_close' },\n ] as const\n }\n\n public toMarkdown({ state, node }: NodeSerializerOptions) {\n const table: string[][] = []\n const colAligns: TABLE_ALIGEN[] = []\n node.forEach((rowNode, _, rowIndex) => {\n const row: string[] = []\n rowNode.forEach((cellNode, __, colIndex) => {\n row.push(replaceNewLines(cellNode.textContent.trim()))\n if (rowIndex === 0) {\n colAligns[colIndex] = TABLE_ALIGEN.DEFAULT\n }\n })\n table.push(row)\n })\n const colNumber = colAligns.length\n\n const colWidths = new Array<number>(colNumber)\n table.forEach((row) => {\n row.forEach((cell, colIndex) => {\n if (!colWidths[colIndex]) colWidths[colIndex] = 3\n colWidths[colIndex] = Math.max(cell.length, colWidths[colIndex])\n })\n })\n\n const spliter: string[] = new Array(colNumber)\n colWidths.forEach((width, colIndex) => {\n switch (colAligns[colIndex]) {\n case TABLE_ALIGEN.LEFT:\n spliter[colIndex] = ':' + '-'.repeat(width - 1)\n break\n case TABLE_ALIGEN.RIGHT:\n spliter[colIndex] = '-'.repeat(width - 1) + ':'\n break\n case TABLE_ALIGEN.CENTER:\n spliter[colIndex] = ':' + '-'.repeat(width - 2) + ':'\n break\n default:\n spliter[colIndex] = '-'.repeat(width)\n break\n }\n })\n table.splice(1, 0, spliter)\n\n let text = ''\n table.forEach((row) => {\n row.forEach((cell, col) => {\n text += '| '\n const width = colWidths[col]\n if (colAligns[col] === TABLE_ALIGEN.CENTER) {\n const pad = ' '.repeat(Math.round((width - cell.length) / 2))\n text += (pad + cell + pad).padEnd(width)\n } else if (colAligns[col] === TABLE_ALIGEN.RIGHT) {\n text += cell.padStart(width)\n } else {\n text += cell.padEnd(width)\n }\n text += ' '\n })\n text += '|\\n'\n })\n text += '\\n'\n\n state.text(text, false)\n }\n\n public createExtensions() {\n return []\n }\n}\n\nexport class LineTableRowExtension extends TableRowExtension {\n get name() {\n return 'tableRow' as const\n }\n\n createNodeSpec(extra: ApplySchemaAttributes, override: NodeSpecOverride): TableSchemaSpec {\n return { ...super.createNodeSpec(extra, override), allowGapCursor: false }\n }\n\n public fromMarkdown() {\n return [\n {\n type: ParserRuleType.block,\n token: 'tr',\n node: this.name,\n hasOpenClose: true,\n },\n ] as const\n }\n\n public toMarkdown() {}\n\n public createExtensions() {\n return []\n }\n}\n\nexport class LineTableHeaderCellExtension extends TableHeaderCellExtension {\n get name() {\n return 'tableHeaderCell' as const\n }\n\n public fromMarkdown() {\n return [] as const\n }\n\n public toMarkdown() {}\n\n public createExtensions() {\n return []\n }\n}\n\nexport class LineTableCellExtension extends TableCellExtension {\n get name() {\n return 'tableCell' as const\n }\n\n createNodeSpec(extra: ApplySchemaAttributes, override: NodeSpecOverride): TableSchemaSpec {\n return {\n ...super.createNodeSpec(extra, override),\n content: 'inline*',\n }\n }\n\n createExtensions() {\n return []\n }\n\n createCommands() {\n return {\n selectTableCell: ({ pos }: { pos: number }): CommandFunction => {\n return ({ tr, dispatch }): boolean => {\n if (tr.setSelection(CellSelection.create(tr.doc, pos))) {\n dispatch?.(tr)\n return true\n }\n return false\n }\n },\n }\n }\n\n public fromMarkdown() {\n return [\n {\n type: ParserRuleType.block,\n token: 'th',\n node: this.name,\n hasOpenClose: true,\n },\n {\n type: ParserRuleType.block,\n token: 'td',\n node: this.name,\n hasOpenClose: true,\n },\n ] as const\n }\n\n public toMarkdown() {}\n}\n\nexport function replaceNewLines(str: string) {\n const replacedStr = str.replace(/\\n/g, \"\")\n return replacedStr\n}\n", "import type { DispatchFunction, KeyBindings, ProsemirrorNode } from \"@remirror/core\"\nimport { convertCommand, isTextSelection } from \"@remirror/core\"\nimport { Fragment } from \"@remirror/pm/model\"\nimport type { EditorState, Transaction } from \"@remirror/pm/state\"\n\nexport function buildBlockEnterKeymap<Node extends ProsemirrorNode>(\n regex: RegExp,\n getNode: (args: { match: string[]; start: number; end: number }) => Node,\n transact?: (args: { tr: Transaction }) => Transaction,\n): KeyBindings {\n // https://github.com/ProseMirror/prosemirror/issues/374#issuecomment-224514332\n // https://discuss.prosemirror.net/t/trigger-inputrule-on-enter/1118/4\n // Some code is copy from prosemirror-inputrules/src/inputrules.js\n return {\n Enter: convertCommand((state: EditorState, dispatch?: DispatchFunction) => {\n // Ensure that the selection is a TextSelection\n if (!isTextSelection(state.selection)) return false\n\n // Ensure that the selection is cursor (empty selection)\n const $cursor = state.selection.$cursor\n if (!$cursor) return false\n\n // Get the text before the selection\n const { nodeBefore } = state.selection.$from\n const textBefore = nodeBefore && nodeBefore.isText && nodeBefore.text\n if (!textBefore) return false\n\n // Execute the regular expression\n const match = regex.exec(textBefore)\n if (!match) return false\n\n // The range of text which will be replaced\n const [start, end] = [$cursor.pos - match[0].length, $cursor.pos]\n const $start = state.doc.resolve(start)\n\n const node = getNode({ match, start, end })\n\n // Ensure that the replacement is available\n const parent = $start.node(-1)\n const replaceFromIndex = $start.index(-1)\n const replaceToIndex = $start.indexAfter(-1)\n if (!parent.canReplace(replaceFromIndex, replaceToIndex, Fragment.from(node))) {\n return false\n }\n\n let tr: Transaction = state.tr\n\n // Insert the Prosemirror node\n tr = tr.replaceRangeWith(start, end, node)\n\n // Run transact\n if (transact) {\n tr = transact({ tr })\n }\n\n if (dispatch) {\n // To be able to query whether a command is applicable for a given state, without\n // actually executing it, the `dispatch` argument is optional\u2014commands should\n // simply return true without doing anything when they are applicable but no\n // `dispatch` argument is given\n // https://prosemirror.net/docs/guide/#commands\n dispatch(tr)\n }\n return true\n }),\n }\n}\n", "import { LineTableCellExtension, LineTableHeaderCellExtension } from './Table/table-extension'\nimport {\n // BoldExtension,\n // BulletListExtension,\n // CodeBlockExtension,\n DropCursorExtension,\n // MentionExtension,\n // EmojiExtension,\n // GapCursorExtension,\n // HardBreakExtension,\n // HeadingExtension,\n // HistoryExtension,\n // ItalicExtension,\n // LinkExtension,\n // ListItemExtension,\n // ListItemSharedExtension,\n // OrderedListExtension,\n // ShortcutsExtension,\n // StrikeExtension,\n // SubExtension,\n // TableCellExtension,\n // TableExtension,\n // TaskListExtension,\n // UnderlineExtension,\n // PlaceholderExtension,\n} from 'remirror/extensions'\n// import data from 'svgmoji/emoji.json'\nimport { LineInlineDecorationExtension, LineInlineMarkExtension, markExtensions } from './Inline'\nimport { LineHeadingExtension } from './Heading'\nimport { LineParagraphExtension } from './Paragraph'\nimport { LineTextExtension } from './Text'\nimport { LineListExtension } from './List'\nimport { corePreset } from '@remirror/preset-core'\nimport { LineBlockquoteExtension } from './BlockQuote'\nimport { LineHardBreakExtension } from './HardBreak'\nimport { ReactComponentExtension } from '@remirror/react'\nimport { LineCodeMirrorExtension } from './CodeMirror/codemirror-extension'\nimport { LineTableExtension, LineTableRowExtension } from './Table'\nimport { LineHorizontalRuleExtension } from './HorizontalRule'\nimport { CountExtension } from '@remirror/extension-count'\nimport { FindExtension } from '@remirror/extension-find'\nimport { LineHtmlBlockExtension } from './HtmlNode/html-block-extension'\nimport { HtmlImageExtension } from './Image'\nimport { IframeExtension } from './Iframe'\nimport { SlashMenuExtension } from './SlashMenu'\nimport { PlaceholderExtension } from './Placeholder'\nimport { ClipboardExtension } from './Clipboard'\n\n// import { TableExtension } from './ReactTables';\n\nexport * from './List'\n\nexport type ExtensionsOptions = {\n handleViewImgSrcUrl?: (src: string) => Promise<string>\n}\n\nfunction extensions({ handleViewImgSrcUrl }: ExtensionsOptions): any[] {\n return [\n ...corePreset({ excludeExtensions: ['paragraph', 'text'] }),\n ...markExtensions({\n handleViewImgSrcUrl,\n }),\n new CountExtension({}),\n new HtmlImageExtension({\n handleViewImgSrcUrl,\n }),\n new IframeExtension({\n enableResizing: true,\n }),\n\n new PlaceholderExtension({ placeholder: 'Type \\'/\\' for commands' }),\n new LineHorizontalRuleExtension({}),\n new LineParagraphExtension(),\n new LineTextExtension(),\n new LineHardBreakExtension(),\n new LineBlockquoteExtension(),\n new LineHeadingExtension({}),\n new LineListExtension(),\n new LineCodeMirrorExtension({}),\n new LineTableExtension({ resizable: false }),\n new LineTableRowExtension(),\n new LineTableCellExtension(),\n new LineTableHeaderCellExtension(),\n new FindExtension({\n decoration: { style: 'background-color: yellow; color: black' },\n activeDecoration: { style: 'background-color: orange; color: black' },\n }),\n new LineHtmlBlockExtension(),\n new ClipboardExtension(),\n\n new ReactComponentExtension({}),\n new DropCursorExtension({}),\n\n new SlashMenuExtension(),\n new LineInlineMarkExtension(),\n new LineInlineDecorationExtension(),\n ]\n}\n\nexport default extensions\n", "import type { CreateExtensionPlugin } from '@remirror/core'\nimport { isTextSelection, PlainExtension } from '@remirror/core'\nimport type { Node as ProsemirrorNode } from '@remirror/pm/model'\nimport type { EditorState } from '@remirror/pm/state'\nimport { Decoration, DecorationSet } from '@remirror/pm/view'\n\nimport type { LineMarkAttrs } from './inline-mark-extensions'\nimport { isAutoHideMark } from './inline-mark-extensions'\n\ntype TextAttrs = Partial<LineMarkAttrs & { isAutoHideMark?: boolean }>\n\nfunction getTextAttrs(textNode: ProsemirrorNode | undefined | null): TextAttrs {\n const attrs: TextAttrs = {}\n for (const mark of textNode?.marks || []) {\n if (isAutoHideMark(mark.type.name)) {\n attrs.isAutoHideMark = true\n }\n Object.assign(attrs, mark.attrs)\n }\n return attrs\n}\n\nfunction findVisibleMarks(\n textBlock: ProsemirrorNode,\n cursorPos: number,\n textIndex: number,\n includeBefore: boolean,\n): [number, number][] {\n const posPairs: [number, number][] = []\n\n let textStartPos = cursorPos\n for (let i = textIndex; i < textBlock.content.childCount; i++) {\n const textNode = textBlock.content.child(i)\n const info = getTextAttrs(textNode)\n if (info.isAutoHideMark) {\n posPairs.push([textStartPos, textStartPos + textNode.nodeSize])\n }\n textStartPos += textNode.nodeSize\n if (info.depth === 1 && info.last) break\n }\n\n const infoAfterCursor = getTextAttrs(textBlock.maybeChild(textIndex))\n if (infoAfterCursor.depth === 1 && infoAfterCursor.first && !includeBefore) {\n return posPairs\n }\n\n let textEndPos = cursorPos\n for (let i = textIndex - 1; i >= 0; i--) {\n const textNode = textBlock.content.child(i)\n const info = getTextAttrs(textNode)\n if (info.isAutoHideMark) {\n posPairs.push([textEndPos - textNode.nodeSize, textEndPos])\n }\n textEndPos -= textNode.nodeSize\n if (info.depth === 1 && info.first) break\n }\n\n return posPairs\n}\n\nfunction createDecorationPlugin(): CreateExtensionPlugin {\n return {\n props: {\n decorations: (state: EditorState) => {\n if (!isTextSelection(state.selection)) return null\n\n const $pos = state.selection.$anchor\n\n const textBlock = $pos.parent\n if (!textBlock.isTextblock) return null\n\n let posPairs: [number, number][]\n\n if ($pos.textOffset === 0) {\n posPairs = findVisibleMarks(textBlock, $pos.pos, $pos.index($pos.depth), true)\n } else {\n const textNodeIndex = $pos.index($pos.depth)\n const textNode = textBlock.content.maybeChild(textNodeIndex)\n if (!textNode) return null\n\n const tokenDepth = getTextAttrs(textNode).depth\n if (!tokenDepth) return null\n\n posPairs = findVisibleMarks(\n textBlock,\n $pos.pos - $pos.textOffset,\n $pos.index($pos.depth),\n false,\n )\n }\n\n return DecorationSet.create(\n state.doc,\n posPairs.map(([from, to]) => Decoration.inline(from, to, { class: 'show' })),\n )\n },\n },\n }\n}\n\nexport class LineInlineDecorationExtension extends PlainExtension {\n get name() {\n return 'inlineDecoration' as const\n }\n\n createPlugin(): CreateExtensionPlugin {\n return createDecorationPlugin()\n }\n}\n", "import type { KeyBindingProps, MarkExtensionSpec, NodeView, NodeViewMethod } from '@remirror/core'\nimport { MarkExtension, extension, keyBinding } from '@remirror/core'\n\nimport { formatHref } from './format-href'\nimport { toggleInlineMark } from './inline-mark-commands'\nimport { LineHtmlInlineExtension } from '../HtmlNode'\n\nconst commonAttrs = {\n depth: { default: 0 },\n}\nconst endpointAttrs = {\n depth: { default: 0 },\n first: { default: false },\n last: { default: false },\n}\n\nclass MetaKey extends MarkExtension {\n static disableExtraAttributes = true\n get name() {\n return 'mdMark' as const\n }\n createMarkSpec(): MarkExtensionSpec {\n return {\n inclusive: false,\n attrs: endpointAttrs,\n toDOM: () => ['span', { class: 'md-mark' }, 0],\n }\n }\n\n createCommands() {\n return {\n toggleInlineMark: toggleInlineMark,\n }\n }\n}\n\nclass PlainText extends MarkExtension {\n static disableExtraAttributes = true\n get name() {\n return 'mdText' as const\n }\n createMarkSpec(): MarkExtensionSpec {\n return {\n attrs: endpointAttrs,\n toDOM: () => ['span', 0],\n }\n }\n}\n\nclass Emphasis extends MarkExtension {\n static disableExtraAttributes = true\n get name() {\n return 'mdEm' as const\n }\n createMarkSpec(): MarkExtensionSpec {\n return {\n attrs: commonAttrs,\n toDOM: () => ['em', 0],\n }\n }\n\n @keyBinding({ shortcut: 'mod-i', command: 'toggleEmphasis' })\n shortcut(props: KeyBindingProps): boolean {\n return toggleInlineMark(this.name)(props)\n }\n}\n\nclass Strong extends MarkExtension {\n static disableExtraAttributes = true\n get name() {\n return 'mdStrong' as const\n }\n createMarkSpec(): MarkExtensionSpec {\n return {\n attrs: commonAttrs,\n toDOM: () => ['strong', 0],\n }\n }\n\n @keyBinding({ shortcut: 'mod-b', command: 'toggleStrong' })\n shortcut(props: KeyBindingProps): boolean {\n return toggleInlineMark(this.name)(props)\n }\n}\n\nclass CodeText extends MarkExtension {\n static disableExtraAttributes = true\n get name() {\n return 'mdCodeText' as const\n }\n createMarkSpec(): MarkExtensionSpec {\n return {\n attrs: commonAttrs,\n toDOM: () => ['code', 0],\n }\n }\n\n @keyBinding({ shortcut: 'mod-e', command: 'toggleCodeText' })\n shortcut(props: KeyBindingProps): boolean {\n return toggleInlineMark(this.name)(props)\n }\n}\n\nclass CodeSpace extends MarkExtension {\n static disableExtraAttributes = true\n get name() {\n return 'mdCodeSpace' as const\n }\n createMarkSpec(): MarkExtensionSpec {\n return {\n attrs: commonAttrs,\n toDOM: () => ['span', 0],\n }\n }\n}\n\nclass Delete extends MarkExtension {\n static disableExtraAttributes = true\n get name() {\n return 'mdDel' as const\n }\n createMarkSpec(): MarkExtensionSpec {\n return {\n attrs: commonAttrs,\n toDOM: () => ['del', 0],\n }\n }\n\n @keyBinding({ shortcut: 'mod-shift-s', command: 'toggleDelete' })\n shortcut(props: KeyBindingProps): boolean {\n return toggleInlineMark(this.name)(props)\n }\n}\n\nclass LinkText extends MarkExtension {\n static disableExtraAttributes = true\n get name() {\n return 'mdLinkText' as const\n }\n createMarkSpec(): MarkExtensionSpec {\n return {\n attrs: {\n ...commonAttrs,\n href: {\n default: '',\n },\n },\n toDOM: (mark) => [\n 'a',\n {\n href: mark.attrs.href,\n },\n 0,\n ],\n }\n }\n}\n\nclass LinkUri extends MarkExtension {\n static disableExtraAttributes = true\n get name() {\n return 'mdLinkUri' as const\n }\n createMarkSpec(): MarkExtensionSpec {\n return {\n spanning: false,\n attrs: commonAttrs,\n toDOM: () => ['a', { class: 'md-link' }, 0],\n }\n }\n}\n\nclass ImgText extends MarkExtension {\n static disableExtraAttributes = true\n get name() {\n return 'mdImgText' as const\n }\n createMarkSpec(): MarkExtensionSpec {\n return {\n spanning: false,\n attrs: commonAttrs,\n toDOM: () => ['span', { class: 'md-img-text' }, 0],\n }\n }\n}\n\ntype MfImgOptions = {\n handleViewImgSrcUrl?: (src: string) => Promise<string>\n}\n@extension<MfImgOptions>({\n defaultOptions: {\n handleViewImgSrcUrl: async (src: string) => src,\n },\n})\nclass ImgUri extends MarkExtension<MfImgOptions> {\n static disableExtraAttributes = true\n get name() {\n return 'mdImgUri' as const\n }\n createMarkSpec(): MarkExtensionSpec {\n return {\n spanning: false,\n attrs: {\n ...commonAttrs,\n key: {\n default: '',\n },\n href: {\n default: '',\n },\n },\n }\n }\n createNodeViews = (): NodeViewMethod => {\n return (mark): NodeView => {\n const innerContainer = document.createElement('span')\n\n const img = document.createElement('img')\n if (this.options.handleViewImgSrcUrl) {\n this.options.handleViewImgSrcUrl(mark.attrs.href).then((newHref) => {\n img.setAttribute('src', formatHref(newHref))\n })\n } else {\n img.setAttribute('src', formatHref(mark.attrs.href))\n }\n\n const outerContainer = document.createElement('span')\n outerContainer.appendChild(img)\n outerContainer.appendChild(innerContainer)\n outerContainer.setAttribute('class', 'md-img-uri')\n\n return { dom: outerContainer, contentDOM: innerContainer }\n }\n }\n}\n\nconst autoHideMarks: Record<string, true> = {\n mdMark: true,\n mdLinkUri: true,\n mdImgText: true,\n mdImgUri: true,\n mdHtmlInline: true\n}\n\nexport function isAutoHideMark(name: string): boolean {\n // This should be the fastest way based on my performance test.\n return autoHideMarks[name]\n}\n\ntype LineMarkExtensionOptions = {\n handleViewImgSrcUrl?: (src: string) => Promise<string>\n}\n\nexport const markExtensions = (options: LineMarkExtensionOptions = {}) => [\n new MetaKey(),\n new PlainText(),\n new Emphasis(),\n new Strong(),\n new CodeText(),\n new CodeSpace(),\n new Delete(),\n new LinkText(),\n new LinkUri(),\n new ImgText(),\n new ImgUri({\n handleViewImgSrcUrl: options.handleViewImgSrcUrl,\n }),\n new LineHtmlInlineExtension({\n handleViewImgSrcUrl: options.handleViewImgSrcUrl,\n }),\n]\nexport type LineMarkExtension = ReturnType<typeof markExtensions>[number]\nexport type LineMarkName = LineMarkExtension['name']\nexport type LineMarkAttrs = {\n depth: number\n\n first?: boolean\n last?: boolean\n\n href?: string\n\n htmlText?: string\n\n /**\n * to fix same attrs node only render once\n */\n key?: string\n}\n", "export function formatHref(location: string): string {\n if (isUnixFilePath(location) || isWindowsFilePath(location)) {\n return formatFileUrl(location)\n } else {\n return location\n }\n}\n\nfunction isUnixFilePath(location: string): boolean {\n return location.startsWith('/')\n}\n\nfunction isWindowsFilePath(location: string): boolean {\n return location.startsWith('\\\\') || /^[A-Z]{1,2}:/.test(location)\n}\n\nfunction formatFileUrl(filePath: string) {\n let pathName = filePath\n\n pathName = pathName.replace(/\\\\/g, '/')\n\n if (pathName[0] !== '/') {\n pathName = `/${pathName}`\n }\n\n return encodeURI(`file://${pathName}`).replace(/[?#]/g, encodeURIComponent)\n}\n", "import type { CommandFunction, CommandFunctionProps, ProsemirrorNode } from '@remirror/core'\nimport type { Transaction } from '@remirror/pm/state'\nimport { TextSelection } from '@remirror/pm/state'\n\nimport { updateRangeMarks } from './inline-mark-helpers'\n\ntype CreateInlineKeyBindingProps = {\n left: string\n right: string\n mark: ToggleableInlineMarkName\n}\n\nfunction findMarkIndex(\n textBlockNode: ProsemirrorNode,\n mark: string,\n fromIndex: number,\n toIndex: number,\n empty: boolean,\n): false | number {\n for (let index = fromIndex; index <= toIndex; index++) {\n if (hasMark(textBlockNode.maybeChild(index), mark)) {\n return index\n }\n }\n if (empty || fromIndex === toIndex) {\n if (\n hasMark(textBlockNode.maybeChild(fromIndex), 'mdMark') &&\n hasMark(textBlockNode.maybeChild(fromIndex - 1), mark)\n ) {\n return fromIndex - 1\n }\n\n if (\n hasMark(textBlockNode.maybeChild(toIndex), 'mdMark') &&\n hasMark(textBlockNode.maybeChild(toIndex + 1), mark)\n ) {\n return toIndex + 1\n }\n }\n\n return false\n}\n\nfunction deleteSimpleInlineMark({\n left,\n right,\n mark,\n}: CreateInlineKeyBindingProps): CommandFunction {\n return (props: CommandFunctionProps): boolean => {\n const { tr, dispatch, state } = props\n const { $from, $to, empty } = state.selection\n\n const textBlockNode = $from.parent\n const textBlockStart = $from.start()\n\n let fromIndex = $from.index()\n let toIndex = $to.index()\n\n // `$to` is between two text nodes and `toIndex` is pointing to the right text node.\n if ($to.textOffset === 0) {\n if (empty) {\n fromIndex = Math.max(fromIndex - 1, 0)\n } else if (toIndex > fromIndex) {\n toIndex--\n }\n }\n\n const existedMarkIndex = findMarkIndex(textBlockNode, mark, fromIndex, toIndex, empty)\n\n if (existedMarkIndex !== false) {\n let found = false\n for (let i = existedMarkIndex; i < textBlockNode.childCount; i++) {\n const textNode = textBlockNode.child(i)\n if (hasMark(textNode, 'mdMark') && textNode.text === right) {\n deleteTextBlockChild(tr, textBlockNode, textBlockStart, i)\n found = true\n }\n }\n for (let i = existedMarkIndex; i >= 0; i--) {\n const textNode = textBlockNode.child(i)\n if (hasMark(textNode, 'mdMark') && textNode.text === left) {\n deleteTextBlockChild(tr, textBlockNode, textBlockStart, i)\n found = true\n }\n }\n if (found) {\n if (dispatch) {\n updateRangeMarks(tr)\n dispatch(tr)\n }\n return true\n }\n }\n\n return false\n }\n}\n\nfunction addSimpleInlineMark({ left, right }: CreateInlineKeyBindingProps): CommandFunction {\n return (props: CommandFunctionProps): boolean => {\n const { tr, dispatch, state } = props\n const { $from, $to, anchor, head } = state.selection\n\n if (dispatch) {\n tr.insertText(right, $to.pos)\n tr.insertText(left, $from.pos)\n const offset = left.length\n tr.setSelection(TextSelection.create(tr.doc, anchor + offset, head + offset))\n updateRangeMarks(tr)\n dispatch(tr)\n }\n\n return true\n }\n}\n\nfunction toggleSimpleInlineMark({\n left,\n right,\n mark,\n}: CreateInlineKeyBindingProps): CommandFunction {\n return (props: CommandFunctionProps): boolean => {\n const { $from, $to } = props.state.selection\n\n if (!$from.sameParent($to) || !$from.parent.type.isTextblock) {\n return false\n }\n\n if (deleteSimpleInlineMark({ left, right, mark })(props)) {\n return true\n }\n\n if (addSimpleInlineMark({ left, right, mark })(props)) {\n return true\n }\n\n return false\n }\n}\n\n/** @public */\nexport type ToggleableInlineMarkName = 'mdStrong' | 'mdEm' | 'mdCodeText' | 'mdDel'\n\nexport function toggleInlineMark(mark: ToggleableInlineMarkName): CommandFunction {\n switch (mark) {\n case 'mdStrong':\n return toggleSimpleInlineMark({ mark, left: '**', right: '**' })\n case 'mdEm':\n return toggleSimpleInlineMark({ mark, left: '*', right: '*' })\n case 'mdCodeText':\n return toggleSimpleInlineMark({ mark, left: '`', right: '`' })\n case 'mdDel':\n return toggleSimpleInlineMark({ mark, left: '~~', right: '~~' })\n default:\n throwUnknownMarkError(mark)\n }\n}\n\nexport type ToggleInlineMark = typeof toggleInlineMark\n\nfunction throwUnknownMarkError(mark: never): never {\n throw new Error(`Unknown mark to toggle: ${mark}`)\n}\n\nfunction hasMark(node: ProsemirrorNode | null | undefined, mark: string): boolean {\n if (!node) {\n return false\n }\n\n return node.marks.some((m) => m.type.name === mark)\n}\n\nfunction deleteTextBlockChild(\n tr: Transaction,\n textBlockNode: ProsemirrorNode,\n textBlockStart: number,\n childIndex: number,\n): Transaction {\n let offset = textBlockStart\n for (let i = 0; i < childIndex; i++) {\n offset += textBlockNode.child(i).nodeSize\n }\n return tr.delete(offset, offset + textBlockNode.child(childIndex).nodeSize)\n}\n", "import type { EditorSchema, ProsemirrorNode } from '@remirror/pm'\nimport type { Node, Schema } from '@remirror/pm/model'\nimport type { Transaction } from '@remirror/pm/state'\nimport { Transform } from '@remirror/pm/transform'\nimport type { EditorView } from '@remirror/pm/view'\n\nimport type { MarkChunk } from '../../steps/batch-mark-step'\nimport { BatchSetMarkStep } from '../../steps/batch-mark-step'\nimport { iterNode, iterNodeRange } from '../../utils/iter-node'\nimport { fromInlineMarkdown } from './from-inline-markdown'\nimport { InlineDecorateType } from './inline-types'\n\nfunction parseTextBlock(schema: Schema, node: Node, startPos: number, output: MarkChunk[]): void {\n if (!node.textContent) {\n return\n }\n const tokens = fromInlineMarkdown(node.textContent)\n\n for (const token of tokens) {\n const expectedMarks = token.marks.map((markName) => {\n return schema.marks[markName].create(token.attrs)\n })\n output.push([startPos + token.start, startPos + token.end, expectedMarks])\n }\n}\n\nfunction parseNode(schema: EditorSchema, node: Node, startPos: number, output: MarkChunk[]): void {\n if (node.attrs.inlineDecorateType === InlineDecorateType.Ignore) {\n return\n }\n\n if (node.isTextblock) {\n parseTextBlock(schema, node, startPos, output)\n } else {\n node.forEach((child: Node, offset: number) => {\n parseNode(schema, child, startPos + offset + 1, output)\n })\n }\n}\n\nfunction updateNodeMarks(tr: Transform, node: Node, startPos: number, output: MarkChunk[]): void {\n if (!node.isTextblock) {\n for (const [child, offset] of iterNode(node)) {\n updateNodeMarks(tr, child, startPos + offset + 1, output)\n }\n } else {\n const schema = tr.doc.type.schema\n parseNode(schema, node, startPos, output)\n }\n}\n\nexport function initDocMarks(doc: ProsemirrorNode): ProsemirrorNode {\n const tr = new Transform(doc)\n const output: MarkChunk[] = []\n updateNodeMarks(tr, doc, 0, output)\n if (output.length) {\n tr.step(new BatchSetMarkStep(output))\n }\n return tr.doc\n}\n\nexport function applySelectionMarks(view: EditorView): void {\n if (view.isDestroyed) return\n\n const tr = view.state.tr\n tr.setMeta('addToHistory', false)\n if (updateRangeMarks(tr)) {\n view.dispatch(tr)\n }\n}\n\nexport function applyDocMarks(view: EditorView): void {\n if (view.isDestroyed) return\n\n const tr = view.state.tr\n if (updateRangeMarks(tr, true)) {\n view.dispatch(tr)\n }\n}\n\nexport function updateRangeMarks(tr: Transaction, forceUpdateAll?: boolean): boolean {\n tr.setMeta('APPLY_MARKS', true)\n\n const { $from, $to } = tr.selection\n const range = $from.blockRange($to)\n\n const output: MarkChunk[] = []\n if (!range || forceUpdateAll) {\n updateNodeMarks(tr, tr.doc, 0, output)\n } else {\n for (const [child, pos] of iterNodeRange(range)) {\n updateNodeMarks(tr, child, pos, output)\n }\n }\n if (output.length) {\n tr.step(new BatchSetMarkStep(output))\n }\n\n if (tr.docChanged) {\n return true\n }\n return false\n}\n", "import type { Node, Schema } from '@remirror/pm/model'\nimport { Fragment, Mark, NodeRange, Slice } from '@remirror/pm/model'\nimport { Step, StepResult } from '@remirror/pm/transform'\n\nimport { ReplaceDocStep } from \"./replace-doc-step\"\nimport { excludeHtmlInlineNodes } from '@/transform/markdown-it-html-inline'\n\nexport type MarkChunk = [from: number, to: number, marks: Mark[]]\n\n// Replace the marks of multiple ranges in bulk. This is much more efficient\n// than creating multiple AddMarkStep and RemoveMarkStep, because it only needs\n// to go through the document once to add/remove the marks.\nexport class BatchSetMarkStep extends Step {\n constructor(readonly chunks: MarkChunk[]) {\n if (chunks.length === 0) {\n throw new RangeError('BatchSetMarkStep: at least one chunk is required')\n }\n\n let pos = 0\n for (const [from, to] of chunks) {\n if (pos > from || from > to) {\n throw new RangeError('BatchSetMarkStep: chunks must be sorted')\n }\n pos = to\n }\n\n super()\n }\n\n apply(doc: Node): StepResult {\n const chunks = this.chunks\n\n const from = chunks[0][0]\n const to = chunks[chunks.length - 1][1]\n\n const $from = doc.resolve(from)\n const $to = doc.resolve(to)\n\n const depth = $from.sharedDepth(to)\n const { start, parent } = new NodeRange($from, $to, depth)\n\n // We use the `start` from `NodeRange` to make sure that the\n // `oldSlice.openStart` is 0, so that we can calulate the position\n // of nodes correctly.\n const oldSlice = doc.slice(start, to)\n\n let chunkIndex = 0,\n nodeHi: number,\n chunkLo: number,\n chunkHi: number,\n lo: number,\n hi: number,\n mark: Mark,\n expectedMarks: readonly Mark[],\n marks: readonly Mark[],\n node: Node | null,\n nextNode: Node | null\n\n const fragment = mapFragment(\n oldSlice.content,\n start,\n parent,\n (inlineNode: Node, parent: Node, nodeLo: number) => {\n node = inlineNode\n\n const mapped: Node[] = []\n\n while (node && chunkIndex < chunks.length) {\n nodeHi = nodeLo + node.nodeSize\n ;[chunkLo, chunkHi, expectedMarks] = chunks[chunkIndex]\n\n // Invalid chunk. Skip it.\n if (chunkLo >= chunkHi) {\n chunkIndex++\n continue\n }\n\n // chunk and node do not overlap. Check the next node.\n if (chunkLo >= nodeHi) {\n mapped.push(node)\n break\n }\n\n // chunk and node do not overlap. Check the next chunk.\n if (nodeLo >= chunkHi) {\n chunkIndex++\n continue\n }\n\n // chunk and node overlap in the range [lo, hi].\n lo = Math.max(chunkLo, nodeLo)\n hi = Math.min(chunkHi, nodeHi)\n\n if (lo > nodeLo) {\n // The start part of the node is not been covered.\n mapped.push(node.cut(0, lo - nodeLo))\n node = node.cut(lo - nodeLo)\n nodeLo = lo\n }\n if (hi < nodeHi) {\n // The end part of the node is not been covered.\n ;[node, nextNode] = [node.cut(0, hi - nodeLo), node.cut(hi - nodeLo)]\n nodeHi = hi\n }\n\n marks = node.marks\n for (mark of marks) {\n if (!mark.isInSet(expectedMarks)) {\n marks = mark.removeFromSet(marks)\n }\n }\n for (mark of expectedMarks) {\n if (!mark.isInSet(marks) && parent?.type.allowsMarkType(mark.type)) {\n marks = mark.addToSet(marks)\n }\n }\n\n node = node.mark(marks)\n mapped.push(node)\n\n nodeLo += node.nodeSize\n node = nextNode\n nextNode = null\n }\n return mapped\n },\n )\n\n return StepResult.fromReplace(\n doc,\n start,\n to,\n new Slice(fragment, oldSlice.openStart, oldSlice.openEnd),\n )\n }\n\n invert(doc: Node): Step {\n return new ReplaceDocStep(doc)\n }\n\n map(): Step | null {\n return null\n }\n\n merge(): Step | null {\n return null\n }\n\n toJSON(): any {\n const chunks = this.chunks.map((chunk) => [\n chunk[0],\n chunk[1],\n chunk[2].map((mark: Mark) => mark.toJSON()),\n ])\n return { stepType: 'batchSetMark', chunks }\n }\n\n static fromJSON(schema: Schema, json: any): BatchSetMarkStep {\n return new BatchSetMarkStep(\n json.chunks.map((chunk: any) => {\n return [chunk[0], chunk[1], chunk[2].map((mark: any) => Mark.fromJSON(schema, mark))]\n }),\n )\n }\n}\n\ntry {\n Step.jsonID('batchSetMark', BatchSetMarkStep)\n} catch (error) {}\n\nfunction mapFragment(\n fragment: Fragment,\n start: number,\n parent: Node,\n fn: (inlineNode: Node, textBlockNode: Node, start: number) => Node[],\n): Fragment {\n const mapped: Node[] = []\n let offset = start\n\n for (let i = 0; i < fragment.childCount; i++) {\n let child = fragment.child(i)\n if (child.content.size) {\n child = child.copy(mapFragment(child.content, offset + (child.isLeaf ? 0 : 1), child, fn))\n }\n if (child.isInline) {\n mapped.push(...fn(child, parent, offset))\n } else {\n mapped.push(child)\n }\n\n offset += excludeHtmlInlineNodes.includes(child.type.name) ? 0 : child.nodeSize\n }\n return Fragment.fromArray(mapped)\n}\n", "import type { Node, Schema } from '@remirror/pm/model'\nimport { Step, StepMap, StepResult } from '@remirror/pm/transform'\n\n// Replace the document with a new document.\nexport class ReplaceDocStep extends Step {\n constructor(readonly doc: Node) {\n super()\n }\n\n apply(doc: Node) {\n return StepResult.ok(doc)\n }\n\n getMap() {\n return StepMap.empty\n }\n\n invert(doc: Node) {\n return new ReplaceDocStep(doc)\n }\n\n map() {\n return null\n }\n\n merge(other: Step) {\n return null\n }\n\n toJSON(): any {\n return { stepType: 'replaceDoc', doc: this.doc.toJSON() }\n }\n\n /// @internal\n static fromJSON(schema: Schema, json: any) {\n const doc = schema.nodeFromJSON(json.doc)\n return new ReplaceDocStep(doc)\n }\n}\n\ntry {\n Step.jsonID('replaceDoc', ReplaceDocStep)\n} catch (error) {\n \n}\n", "import type { ProsemirrorNode } from \"@remirror/core\"\nimport type { NodeRange } from \"@remirror/pm/model\"\n\n/**\n * Iterate all children from a parent node. Yield child node, its\n * offset into this parent node and its index.\n *\n * Same function as node.forEach but with two benefits by using\n * ES6 generator:\n * 1. better readability\n * 2. ability to break the loop\n *\n * @param node The parent node\n * @yields {[node, offset, index]}\n */\nexport function* iterNode(node: ProsemirrorNode): Generator<[ProsemirrorNode, number, number]> {\n const fragment = node.content\n for (let index = 0, offset = 0; index < fragment.childCount; index++) {\n const child = fragment.child(index)\n yield [child, offset, index]\n offset += child.nodeSize\n }\n}\n\n/**\n * Iterage all children from a NodeRange object. Yield each child node\n * and its (absolute) position\n *\n * @param range\n * @yields {[node, offset]}\n */\nexport function* iterNodeRange(range: NodeRange): Generator<[ProsemirrorNode, number]> {\n let pos = range.start + 1\n for (const [child, , index] of iterNode(range.parent)) {\n if (index < range.startIndex) continue\n else if (index >= range.endIndex) break\n yield [child, pos]\n pos += child.nodeSize\n }\n}\n", "import type mdast from 'mdast'\nimport type { Options as FromMarkdownOptions } from 'mdast-util-from-markdown'\nimport { fromMarkdown } from 'mdast-util-from-markdown'\nimport { gfmAutolinkLiteralFromMarkdown } from 'mdast-util-gfm-autolink-literal'\nimport { gfmStrikethroughFromMarkdown } from 'mdast-util-gfm-strikethrough'\nimport { gfmAutolinkLiteral } from 'micromark-extension-gfm-autolink-literal'\nimport { gfmStrikethrough } from 'micromark-extension-gfm-strikethrough'\nimport { nanoid } from 'nanoid'\nimport voidElements from 'void-elements'\nimport type { LineMarkName } from './inline-mark-extensions'\nimport type { InlineToken } from './inline-types'\nimport { cloneDeep } from 'lodash'\nimport { getTagName, isClosingTag } from '../../utils/html'\nimport { needSplitInlineHtmlTokenTags } from '@/transform/markdown-it-html-inline'\n\ngfmAutolinkLiteralFromMarkdown.transforms = []\n\nfunction fixMarkNames(marks: LineMarkName[]): LineMarkName[] {\n if (marks.length <= 1) return marks\n if (marks.includes('mdMark')) return ['mdMark']\n if (marks.includes('mdCodeText')) return ['mdCodeText']\n if (marks.includes('mdText')) return marks.filter((x) => x !== 'mdText')\n return marks\n}\n\nfunction flatText(mdastToken: mdast.Text, depth: number): InlineToken[] {\n return [\n {\n marks: ['mdText'],\n attrs: { depth, first: true, last: true },\n start: mdastToken.position!.start.offset!,\n end: mdastToken.position!.end.offset!,\n },\n ]\n}\n\nfunction flatStrong(mdastToken: mdast.Strong, depth: number): InlineToken[] {\n const inlineTokens: InlineToken[] = [\n {\n marks: ['mdMark'],\n attrs: { depth, first: true },\n start: mdastToken.position!.start.offset!,\n end: mdastToken.position!.start.offset! + 2,\n },\n ]\n for (const childMdastToken of mdastToken.children) {\n for (const inlineToken of flatPhrasingContent(childMdastToken, depth + 1)) {\n inlineToken.marks.push('mdStrong')\n inlineTokens.push(inlineToken)\n }\n }\n inlineTokens.push({\n marks: ['mdMark'],\n attrs: { depth, last: true },\n start: mdastToken.position!.end.offset! - 2,\n end: mdastToken.position!.end.offset!,\n })\n return inlineTokens\n}\n\nfunction flatEmphasis(mdastToken: mdast.Emphasis, depth: number): InlineToken[] {\n const inlineTokens: InlineToken[] = [\n {\n marks: ['mdMark'],\n attrs: { depth, first: true },\n start: mdastToken.position!.start.offset!,\n end: mdastToken.position!.start.offset! + 1,\n },\n ]\n for (const childMdastToken of mdastToken.children) {\n for (const inlineToken of flatPhrasingContent(childMdastToken, depth + 1)) {\n inlineToken.marks.push('mdEm')\n inlineTokens.push(inlineToken)\n }\n }\n inlineTokens.push({\n marks: ['mdMark'],\n attrs: { depth, last: true },\n start: mdastToken.position!.end.offset! - 1,\n end: mdastToken.position!.end.offset!,\n })\n return inlineTokens\n}\n\nfunction flatDelete(mdastToken: mdast.Delete, depth: number): InlineToken[] {\n const inlineTokens: InlineToken[] = [\n {\n marks: ['mdMark'],\n attrs: { depth, first: true },\n start: mdastToken.position!.start.offset!,\n end: mdastToken.position!.start.offset! + 2,\n },\n ]\n for (const childMdastToken of mdastToken.children) {\n for (const inlineToken of flatPhrasingContent(childMdastToken, depth + 1)) {\n inlineToken.marks.push('mdDel')\n inlineTokens.push(inlineToken)\n }\n }\n inlineTokens.push({\n marks: ['mdMark'],\n attrs: { depth, last: true },\n start: mdastToken.position!.end.offset! - 2,\n end: mdastToken.position!.end.offset!,\n })\n return inlineTokens\n}\n\nfunction flatInlineCode(mdastToken: mdast.InlineCode, depth: number): InlineToken[] {\n return [\n {\n marks: ['mdMark'],\n attrs: { depth, first: true },\n start: mdastToken.position!.start.offset!,\n end: mdastToken.position!.start.offset! + 1,\n },\n {\n marks: ['mdCodeText'],\n attrs: { depth },\n start: mdastToken.position!.start.offset! + 1,\n end: mdastToken.position!.end.offset! - 1,\n },\n {\n marks: ['mdMark'],\n attrs: { depth, last: true },\n start: mdastToken.position!.end.offset! - 1,\n end: mdastToken.position!.end.offset!,\n },\n ]\n}\n\nfunction flatImage(mdastToken: mdast.Image, depth: number): InlineToken[] {\n return [\n {\n marks: ['mdImgUri'],\n attrs: { depth, first: true, last: true, href: mdastToken.url, key: nanoid() },\n start: mdastToken.position!.start.offset!,\n end: mdastToken.position!.end.offset!,\n },\n ]\n}\n\nfunction flatAutoLinkLiteral(mdastToken: mdast.Link, depth: number): InlineToken[] {\n return [\n {\n marks: ['mdLinkText'],\n attrs: { depth, first: true, last: true, href: mdastToken.url },\n start: mdastToken.position!.start.offset!,\n end: mdastToken.position!.end.offset!,\n },\n ]\n}\n\nfunction flatLink(mdastToken: mdast.Link, depth: number): InlineToken[] {\n const parentStartPos = mdastToken.position!.start.offset!\n const parentEndPos = mdastToken.position!.end.offset!\n\n if (mdastToken.children.length === 0) {\n // process [](https://example.com)\n return [\n {\n marks: ['mdText'],\n attrs: { depth, first: true, last: true },\n start: mdastToken.position!.start.offset!,\n end: mdastToken.position!.start.offset! + 2,\n },\n {\n marks: ['mdMark'],\n attrs: { depth },\n start: mdastToken.position!.start.offset! + 2,\n end: parentEndPos,\n }\n ]\n }\n const childrenStartPos = mdastToken.children[0].position!.start.offset!\n const childrenEndPos = mdastToken.children[mdastToken.children.length - 1].position!.end.offset!\n\n if (parentStartPos === childrenStartPos && parentEndPos === childrenEndPos) {\n return flatAutoLinkLiteral(mdastToken, depth)\n }\n\n const inlineTokens: InlineToken[] = [\n // match \"<\" for autolinks or \"[\" for links\n {\n marks: ['mdMark'],\n attrs: { depth, first: true },\n start: mdastToken.position!.start.offset!,\n end: mdastToken.position!.start.offset! + 1,\n },\n ]\n for (const childMdastToken of mdastToken.children) {\n for (const inlineToken of flatPhrasingContent(childMdastToken, depth + 1)) {\n inlineToken.marks.push('mdLinkText')\n inlineToken.attrs.href = mdastToken.url\n inlineTokens.push(inlineToken)\n }\n }\n\n if (childrenEndPos + 2 < parentEndPos) {\n inlineTokens.push(\n // match \"](\" for links\n {\n marks: ['mdMark'],\n attrs: { depth },\n start: childrenEndPos,\n end: childrenEndPos + 2,\n },\n // match the content between \"(\" and \")\" for links\n {\n marks: ['mdLinkUri'], // TODO: it's not only uri\n attrs: { depth },\n start: childrenEndPos + 2,\n end: parentEndPos - 1,\n },\n )\n }\n\n // match \">\" for autolinks or \"]\" for links\n inlineTokens.push({\n marks: ['mdMark'],\n attrs: { depth, last: true },\n start: parentEndPos - 1,\n end: parentEndPos,\n })\n return inlineTokens\n}\n\n// Make a tree structural mdast `PhrasingContent` object into a flat `InlineToken` array.\nfunction flatPhrasingContent(mdastToken: mdast.PhrasingContent, depth: number): InlineToken[] {\n switch (mdastToken.type) {\n case 'text':\n return flatText(mdastToken, depth)\n case 'strong':\n return flatStrong(mdastToken, depth)\n case 'emphasis':\n return flatEmphasis(mdastToken, depth)\n case 'delete':\n return flatDelete(mdastToken, depth)\n case 'inlineCode':\n return flatInlineCode(mdastToken, depth)\n case 'html':\n return []\n case 'break':\n return []\n case 'image':\n return flatImage(mdastToken, depth)\n case 'imageReference':\n return []\n case 'footnote':\n return []\n case 'footnoteReference':\n return []\n case 'link':\n return flatLink(mdastToken, depth)\n case 'linkReference':\n return []\n default:\n console.warn('unknow mdast token:', mdastToken)\n return []\n }\n}\n\ntype PhrasingContentType = mdast.PhrasingContent['type']\n\nconst phrasingContentTypes: Record<PhrasingContentType, true> = {\n delete: true,\n text: true,\n emphasis: true,\n strong: true,\n html: true,\n inlineCode: true,\n break: true,\n image: true,\n imageReference: true,\n footnote: true,\n footnoteReference: true,\n link: true,\n linkReference: true,\n}\n\nconst fromMarkdownOptions: FromMarkdownOptions = {\n extensions: [\n {\n disable: {\n null: [\n 'blockQuote',\n 'characterEscape',\n 'characterReference',\n 'codeFenced',\n 'codeIndented',\n 'definition',\n 'headingAtx',\n 'htmlFlow',\n 'list',\n 'thematicBreak',\n ],\n },\n },\n gfmStrikethrough({ singleTilde: false }),\n gfmAutolinkLiteral,\n ],\n mdastExtensions: [gfmStrikethroughFromMarkdown, gfmAutolinkLiteralFromMarkdown],\n}\n\nfunction parseInlineMarkdown(text: string): mdast.PhrasingContent[] {\n try {\n const root: mdast.Root = fromMarkdown(text, fromMarkdownOptions)\n if (root.children.length === 0) {\n return []\n }\n if (root.children.length !== 1) {\n throw Error(`root.children has ${root.children.length} children`)\n }\n const paragraph = root.children[0]\n if (paragraph.type !== 'paragraph') {\n throw Error(`unknow child type ${paragraph.type}`)\n }\n\n for (const child of paragraph.children) {\n if (!phrasingContentTypes[child.type]) {\n throw Error(`got unknow phrasingContent token: ${JSON.stringify(child)}`)\n }\n }\n return paragraph.children\n } catch (error) {\n console.warn(`failed to parse inline markdown text ${JSON.stringify(text)}: ${error}`)\n }\n return []\n}\n\nfunction fixTokensMarkNames(tokens: InlineToken[]) {\n for (const inlineToken of tokens) {\n if (inlineToken.end - inlineToken.start === 0) {\n continue // Prosemirror doesn't allow empty text node\n }\n inlineToken.marks = fixMarkNames(inlineToken.marks)\n }\n return tokens\n}\n\nfunction parseMdInline(phrasingContents: mdast.PhrasingContent[], depth = 1) {\n const inlineTokens: InlineToken[] = []\n\n for (const phrasingContent of phrasingContents) {\n const tokens = flatPhrasingContent(phrasingContent, depth)\n inlineTokens.push(...fixTokensMarkNames(tokens))\n }\n\n return inlineTokens\n}\n\nfunction mergePhrasingContents(\n phrasingContents: mdast.HTML[],\n startIndex: number,\n endIndex: number,\n): MdAstHtml[] {\n const merged = cloneDeep(phrasingContents[startIndex]) as MdAstHtml\n\n for (let i = startIndex + 1; i <= endIndex; i++) {\n merged.value += phrasingContents[i].value || ''\n merged.position!.end = phrasingContents[i].position!.end\n merged.complete = true\n }\n\n phrasingContents.splice(startIndex, endIndex - startIndex + 1, merged)\n return phrasingContents as MdAstHtml[]\n}\n\nfunction getMergeArr(phrasingContents: MdAstHtml[]) {\n const unCloseedHtmlStack: HTMLNode[] = []\n const mergeArr: HTMLNode[][] = []\n for (let i = 0; i < phrasingContents.length; i++) {\n const phrasingContent = phrasingContents[i]\n if (phrasingContent.type === 'html') {\n const tagName = getTagName(phrasingContent.value)\n const htmlNode = {\n tag: tagName,\n voidElement: !!voidElements[tagName],\n isClosingTag: isClosingTag(phrasingContent.value),\n index: i,\n }\n\n if (!htmlNode.voidElement) {\n if (!htmlNode.isClosingTag) {\n unCloseedHtmlStack.push(htmlNode)\n } else if (unCloseedHtmlStack[unCloseedHtmlStack.length - 1]?.tag === htmlNode.tag) {\n if (unCloseedHtmlStack.length >= 1) {\n mergeArr.push([unCloseedHtmlStack.pop()!, htmlNode])\n phrasingContent.complete = true\n }\n }\n } else {\n phrasingContent.complete = true\n }\n }\n }\n\n for (let i = 0; i < mergeArr.length; i++) {\n const merge = mergeArr[i]\n const startIndex = merge[0].index\n const endIndex = merge[1].index\n const parentNode = mergeArr.findIndex(\n (item) => item[0].index < startIndex && item[1].index > endIndex,\n )\n if (parentNode >= 0) {\n mergeArr.splice(i, 1)\n i--\n }\n }\n\n return mergeArr\n}\n\nfunction mergeHtmlPhrasingContents(phrasingContents: MdAstHtml[]) {\n const mergeArr = getMergeArr(phrasingContents)\n let offset = 0\n mergeArr.forEach((merge) => {\n const startIndex = merge[0].index + offset\n const endIndex = merge[1].index + offset\n mergePhrasingContents(phrasingContents, startIndex, endIndex)\n offset += startIndex - endIndex\n })\n}\nfunction flatHTMLInlineCode(phrasingContents: MdAstHtml[], depth = 1) {\n mergeHtmlPhrasingContents(phrasingContents)\n\n const inlineTokens: InlineToken[] = []\n phrasingContents.forEach((phrascontent) => {\n if (phrascontent.type === 'html') {\n if (phrascontent.complete) {\n inlineTokens.push({\n marks: ['mdHtmlInline'],\n attrs: {\n depth: 1,\n htmlText: phrascontent.value,\n key: nanoid(),\n first: true,\n last: true,\n },\n start: phrascontent.position!.start.offset!,\n end: phrascontent.position!.end.offset!,\n })\n } else {\n inlineTokens.push({\n marks: ['mdText'],\n attrs: { depth, first: true, last: true },\n start: phrascontent.position!.start.offset!,\n end: phrascontent.position!.end.offset!,\n })\n }\n } else {\n const tokens = flatPhrasingContent(phrascontent, depth)\n inlineTokens.push(...fixTokensMarkNames(tokens))\n }\n })\n\n return inlineTokens\n}\n\nfunction hasHtmlToken(mdastToken: mdast.PhrasingContent[]) {\n for (const token of mdastToken) {\n if (token.type === 'html' && !needSplitInlineHtmlTokenTags.includes(getTagName(token.value))) {\n return true\n }\n }\n return false\n}\n\nexport function fromInlineMarkdown(text: string): InlineToken[] {\n const phrasingContents = parseInlineMarkdown(text)\n\n if (hasHtmlToken(phrasingContents)) {\n return flatHTMLInlineCode(phrasingContents as MdAstHtml[])\n }\n\n return parseMdInline(phrasingContents)\n}\n\ntype MdAstHtml = {\n complete?: boolean\n value: string\n} & mdast.HTML\n\ntype HTMLNode = {\n tag: string\n voidElement: boolean\n isClosingTag: boolean\n index: number\n}\n", "import { isImageElement } from '@/utils/html'\nimport type { MarkExtensionSpec, NodeViewMethod } from 'remirror'\nimport { MarkExtension, extension } from 'remirror'\n\ntype LineHtmlInlineExtensionOptions = {\n handleViewImgSrcUrl?: (src: string) => Promise<string>\n}\n\n@extension<LineHtmlInlineExtensionOptions>({\n defaultOptions: {\n handleViewImgSrcUrl: async (src: string) => src,\n },\n})\nexport class LineHtmlInlineExtension extends MarkExtension<LineHtmlInlineExtensionOptions> {\n static disableExtraAttributes = true\n\n get name() {\n return 'mdHtmlInline' as const\n }\n\n createMarkSpec(): MarkExtensionSpec {\n return {\n attrs: {\n depth: { default: 0 },\n key: {\n default: '',\n },\n htmlText: {\n default: '',\n },\n },\n toDOM: (mark) => [\n 'span',\n {\n ...mark.attrs,\n },\n 0,\n ],\n }\n }\n\n createNodeViews(): NodeViewMethod | Record<string, NodeViewMethod> {\n return (node) => {\n const container = document.createElement('span')\n\n const domParser = new DOMParser()\n const doc = domParser.parseFromString(node.attrs.htmlText || '', 'text/html')\n\n doc.body.childNodes.forEach((child) => {\n if (isImageElement(child) && child.src && this.options.handleViewImgSrcUrl) {\n let targetUrl = child.src\n \n if (child.src.includes(location.origin)) {\n targetUrl = child.src.split(location.origin)[1]\n }\n\n this.options.handleViewImgSrcUrl(targetUrl).then((newHref) => {\n child.src = newHref\n })\n }\n container.appendChild(child)\n })\n\n const contentDom = document.createElement('span')\n container.appendChild(contentDom)\n container.setAttribute('key', node.attrs.key)\n contentDom.setAttribute('class', 'md-html-inline')\n\n return {\n dom: container,\n contentDOM: contentDom,\n }\n }\n }\n}\n", "import type { Transaction } from '@remirror/pm/state'\nimport type { EditorView } from '@remirror/pm/view'\n\nimport { applySelectionMarks } from './inline-mark-helpers'\nimport { PlainExtension } from 'remirror'\n\nexport class LineInlineMarkExtension extends PlainExtension {\n get name() {\n return 'inlineMark' as const\n }\n\n createPlugin() {\n let timeoutId: ReturnType<typeof setTimeout> | null = null\n\n const debounceApplyMarks = (view: EditorView): void => {\n if (timeoutId) {\n clearTimeout(timeoutId)\n }\n timeoutId = setTimeout(() => {\n applySelectionMarks(view)\n timeoutId = null\n }, 100)\n }\n\n let view: EditorView | null = null\n\n return {\n appendTransaction: (\n transactions: readonly Transaction[],\n ): Transaction | null | undefined => {\n let shouldUpdate = false\n\n for (const tr of transactions) {\n if (tr.docChanged && !tr.getMeta('APPLY_MARKS')) {\n shouldUpdate = true\n break\n }\n }\n\n if (shouldUpdate && view && !view.isDestroyed) {\n debounceApplyMarks(view)\n }\n return \n },\n \n view: (editorView: EditorView | null) => {\n view = editorView\n return {}\n },\n }\n }\n}\n", "import type {\n ApplySchemaAttributes,\n KeyBindings,\n NodeExtensionSpec,\n NodeSpecOverride,\n} from '@remirror/core'\nimport { convertCommand, findParentNodeOfType } from '@remirror/core'\nimport { HeadingExtension } from 'remirror/extensions'\nimport { setBlockType } from '@remirror/pm/commands'\nimport type { Schema } from '@remirror/pm/model'\nimport type Token from 'markdown-it/lib/token'\n\nimport type { NodeSerializerOptions } from '../../transform'\nimport { ParserRuleType } from '../../transform'\n\nexport class LineHeadingExtension extends HeadingExtension {\n createNodeSpec(extra: ApplySchemaAttributes, override: NodeSpecOverride): NodeExtensionSpec {\n return {\n ...super.createNodeSpec(extra, override),\n content: 'text*', // Disallow hard breaks in headings\n }\n }\n\n createKeymap() {\n const keys: KeyBindings = {\n Backspace: ({ state, dispatch }) => {\n const { selection } = state\n\n // If the selection is not empty, return false and let other extension (ie: BaseKeymapExtension) to do\n // the deleting operation.\n if (!selection.empty) {\n return false\n }\n\n const parent = findParentNodeOfType({ types: this.type, selection })\n if (parent?.start !== selection.from) {\n return false\n }\n\n const tr = state.tr.setBlockType(\n parent.start,\n parent.start,\n (state.schema as Schema).nodes.paragraph,\n )\n if (dispatch) {\n dispatch(tr)\n }\n return true\n },\n }\n\n this.options.levels.forEach((level) => {\n keys[`mod-${level}`] = convertCommand(setBlockType(this.type, { level }))\n })\n\n return keys\n }\n\n fromMarkdown() {\n return [\n {\n type: ParserRuleType.block,\n token: 'heading',\n node: this.name,\n hasOpenClose: true,\n getAttrs: (tok: Token) => ({ level: +tok.tag.slice(1) }),\n },\n ] as const\n }\n\n toMarkdown({ state, node }: NodeSerializerOptions) {\n state.write(state.repeat('#', node.attrs.level) + ' ')\n state.renderInline(node)\n state.closeBlock(node)\n }\n}\n", "import type { ApplySchemaAttributes, NodeExtensionSpec, NodeSpecOverride } from \"@remirror/core\"\nimport { ParagraphExtension } from \"remirror/extensions\"\n\nimport type { NodeSerializerOptions} from \"../../transform\"\nimport { ParserRuleType } from \"../../transform\"\n\nexport class LineParagraphExtension extends ParagraphExtension {\n createNodeSpec(extra: ApplySchemaAttributes, override: NodeSpecOverride): NodeExtensionSpec {\n const spec = super.createNodeSpec(extra, override)\n // @ts-expect-error: remirror needs to be fixed for this to work\n return { ...spec, whitespace: \"pre\" }\n }\n\n fromMarkdown() {\n return [\n {\n type: ParserRuleType.block,\n token: \"paragraph\",\n node: this.name,\n hasOpenClose: true,\n },\n ] as const\n }\n\n toMarkdown({ state, node }: NodeSerializerOptions) {\n state.renderInline(node)\n state.closeBlock(node)\n }\n}\n", "import { TextExtension } from \"remirror/extensions\"\nimport type Token from \"markdown-it/lib/token\"\n\nimport type { NodeSerializerOptions} from \"../../transform\"\nimport { ParserRuleType } from \"../../transform\"\n\nexport class LineTextExtension extends TextExtension {\n fromMarkdown() {\n return [\n {\n type: ParserRuleType.text,\n token: \"text\",\n getText: (tok: Token) => tok.content,\n },\n {\n type: ParserRuleType.text,\n token: \"inline\",\n getText: (tok: Token) => tok.content,\n },\n {\n type: ParserRuleType.text,\n token: \"softbreak\",\n getText: (tok: Token) => \"\\n\",\n },\n ] as const\n }\n\n toMarkdown({ state, node }: NodeSerializerOptions) {\n state.text(node.text || \"\")\n }\n}\n", "import type { ProsemirrorNode } from '@remirror/core'\nimport { isString } from '@remirror/core'\nimport type Token from 'markdown-it/lib/token'\nimport type { ListAttributes } from 'remirror-extension-flat-list'\nimport { ListExtension } from 'remirror-extension-flat-list'\nimport type { MarkdownParseState, NodeSerializerOptions } from '../../transform'\nimport { ParserRuleType } from '../../transform'\nimport type { NodeSerializerSpec, ParserRule } from '../../transform'\n\nexport abstract class MarkdownNodeExtension {\n abstract fromMarkdown: () => readonly ParserRule[]\n abstract toMarkdown: NodeSerializerSpec\n}\n\nexport class LineListExtension extends ListExtension implements MarkdownNodeExtension {\n public fromMarkdown() {\n return [\n {\n type: ParserRuleType.free,\n token: 'list_item_open',\n handler: (state: MarkdownParseState): void => {\n switch (state.topContext()) {\n case 'ordered_list':\n state.openNode(this.type, { kind: 'ordered' } satisfies ListAttributes)\n break\n case 'bullet_list':\n state.openNode(this.type, { kind: 'bullet' } satisfies ListAttributes)\n break\n default:\n throw new Error('unknown context')\n }\n },\n },\n {\n type: ParserRuleType.free,\n token: 'list_checkbox',\n handler: (state: MarkdownParseState, tok: Token) => {\n const parent = state.stack[state.stack.length - 1]\n if (parent?.type.name === 'list') {\n const checked: null | string | boolean = tok.attrGet('checked')\n const attrs: ListAttributes = { kind: 'task', checked: isString(checked) || !!checked }\n parent.attrs = attrs\n } else {\n console.warn(`expect list but got ${parent?.type.name}`)\n }\n },\n },\n {\n type: ParserRuleType.free,\n token: 'list_item_close',\n handler: (state: MarkdownParseState): void => {\n state.closeNode()\n },\n },\n {\n type: ParserRuleType.context,\n token: 'bullet_list',\n context: 'bullet_list',\n },\n {\n type: ParserRuleType.context,\n token: 'ordered_list',\n context: 'ordered_list',\n },\n ] as const\n }\n\n public toMarkdown({ state, node, counter }: NodeSerializerOptions) {\n const attrs = node.attrs as ListAttributes\n let firstDelim = ''\n if (attrs.kind === 'ordered') {\n firstDelim = `${counter}. `\n } else if (attrs.kind === 'task') {\n firstDelim = attrs.checked ? '- [x] ' : '- [ ] '\n } else if (attrs.kind === 'bullet') {\n firstDelim = '- '\n }\n\n state.wrapBlock(' '.repeat(firstDelim.length), firstDelim, node, () =>\n state.renderContent(node),\n )\n }\n}\n\nexport function isOrderedListNode(node: ProsemirrorNode): boolean {\n return node.type.name === 'list' && (node.attrs as ListAttributes).kind === 'ordered'\n}\n", "import { BlockquoteExtension } from \"remirror/extensions\"\n\nimport type { NodeSerializerOptions} from \"../../transform\"\nimport { ParserRuleType } from \"../../transform\"\n\nexport class LineBlockquoteExtension extends BlockquoteExtension {\n public fromMarkdown() {\n return [\n {\n type: ParserRuleType.block,\n token: \"blockquote\",\n node: this.name,\n hasOpenClose: true,\n },\n ] as const\n }\n\n public toMarkdown({ state, node }: NodeSerializerOptions) {\n state.wrapBlock(\"> \", null, node, () => state.renderContent(node))\n }\n}\n", "import { chainCommands, convertCommand } from '@remirror/core'\nimport { HardBreakExtension } from 'remirror/extensions'\nimport { baseKeymap, exitCode } from '@remirror/pm/commands'\n\nimport type { NodeSerializerOptions } from '../../transform'\n\nconst needUseBrNodeNames = ['tableCell']\n\nexport class LineHardBreakExtension extends HardBreakExtension {\n fromMarkdown() {\n return []\n }\n\n toMarkdown({ state, node, parent, index }: NodeSerializerOptions) {\n for (let i = index + 1; i < parent.childCount; i++)\n if (parent.child(i).type != node.type) {\n state.write('\\n')\n return\n }\n }\n\n createKeymap() {\n const disallowBreakNodes = new Set(['heading'])\n\n const enterCommand = convertCommand(baseKeymap.Enter)\n\n const command = chainCommands(convertCommand(exitCode), (params) => {\n const { state, tr, dispatch } = params\n const { $from, $to, from, to } = state.selection\n const canReplace =\n !disallowBreakNodes.has($from.parent.type.name) &&\n !disallowBreakNodes.has($to.parent.type.name)\n const nodeName = $from.parent.type.name\n if (canReplace) {\n const schema = state.schema\n\n if (needUseBrNodeNames.includes(nodeName)) {\n dispatch?.(tr.replaceRangeWith(from, to, schema.text('<br/>\\n')))\n } else {\n dispatch?.(tr.replaceRangeWith(from, to, schema.text('\\n')))\n }\n return true\n } else {\n // If the parent doesn't allow HardBreak type (Heading for example), then fall back to `Enter` command\n return enterCommand(params)\n }\n })\n\n return {\n 'Mod-Enter': command,\n 'Shift-Enter': command,\n }\n }\n}\n", "import { HorizontalRuleExtension } from 'remirror/extensions'\n\nimport type { NodeSerializerOptions} from '../../transform'\nimport { ParserRuleType } from '../../transform'\n\nexport class LineHorizontalRuleExtension extends HorizontalRuleExtension {\n fromMarkdown() {\n return [\n {\n type: ParserRuleType.block,\n token: 'hr',\n node: this.name,\n hasOpenClose: false,\n },\n ] as const\n }\n toMarkdown({ state, node }: NodeSerializerOptions) {\n state.write('---')\n state.closeBlock(node)\n }\n}\n", "var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\n\n// packages/remirror__extension-find/src/find-extension.ts\nimport escapeStringRegex from \"escape-string-regexp\";\nimport matchAll from \"string.prototype.matchall\";\nimport {\n command,\n extension,\n helper,\n PlainExtension\n} from \"@remirror/core\";\nimport { Decoration, DecorationSet } from \"@remirror/pm/view\";\n\n// packages/remirror__extension-find/src/find-utils.ts\nfunction rotateIndex(index, length) {\n if (length <= 0) {\n return 0;\n }\n return (index % length + length) % length;\n}\n\n// packages/remirror__extension-find/src/find-extension.ts\nvar FindExtension = class extends PlainExtension {\n constructor() {\n super(...arguments);\n this._updating = false;\n this._query = \"\";\n this._caseSensitive = true;\n this._ranges = [];\n this._activeIndex = void 0;\n }\n get name() {\n return \"find\";\n }\n find({ query, activeIndex, caseSensitive }) {\n if (!query) {\n return this.stopFind();\n }\n this.setProps({ query, activeIndex, caseSensitive });\n return ({ tr, dispatch }) => {\n return this.updateView(tr, dispatch);\n };\n }\n stopFind() {\n return ({ tr, dispatch }) => {\n this._query = \"\";\n this._activeIndex = void 0;\n return this.updateView(tr, dispatch);\n };\n }\n findAndReplace({\n query,\n caseSensitive,\n replacement,\n index\n }) {\n return (props) => {\n this.setProps({ query, caseSensitive });\n const { tr, dispatch } = props;\n const ranges = this.gatherFindResults(tr.doc);\n index = rotateIndex(index ?? this._activeIndex ?? 0, ranges.length);\n const result = ranges[index];\n if (!result) {\n return false;\n }\n if (!dispatch) {\n return true;\n }\n tr.insertText(replacement, result.from, result.to);\n return this.updateView(tr, dispatch);\n };\n }\n findAndReplaceAll({\n query,\n caseSensitive,\n replacement\n }) {\n return (props) => {\n this.setProps({ query, caseSensitive });\n const { tr } = props;\n const ranges = this.gatherFindResults(tr.doc);\n for (let i = ranges.length - 1; i >= 0; i--) {\n const { from, to } = ranges[i];\n tr.insertText(replacement, from, to);\n }\n return this.stopFind()(props);\n };\n }\n findRanges(options) {\n this.store.commands.find(options);\n return {\n activeIndex: this._activeIndex,\n ranges: this._ranges\n };\n }\n /**\n * This plugin is responsible for do the searching and updating the\n * decorations.\n */\n createPlugin() {\n return {\n state: {\n init() {\n return DecorationSet.empty;\n },\n apply: (tr, old) => {\n if (this._updating || tr.docChanged && this.options.alwaysFind) {\n const doc = tr.doc;\n this._ranges = this.gatherFindResults(doc);\n this.normalizeActiveIndex();\n this.scrollToActiveResult();\n return this.createDecorationSet(doc);\n }\n if (tr.docChanged) {\n return old.map(tr.mapping, tr.doc);\n }\n return old;\n }\n },\n props: {\n decorations: (state) => {\n return this.getPluginState(state);\n }\n }\n };\n }\n setProps({\n query,\n activeIndex,\n caseSensitive\n }) {\n this._query = escapeStringRegex(query);\n this._activeIndex = activeIndex;\n this._caseSensitive = caseSensitive ?? false;\n }\n gatherFindResults(doc) {\n if (!this._query) {\n return [];\n }\n const re = new RegExp(this._query, this._caseSensitive ? \"gu\" : \"gui\");\n const ranges = [];\n doc.descendants((node, pos) => {\n if (!node.isTextblock) {\n return true;\n }\n const start = pos + 1;\n for (const match of matchAll(node.textContent, re)) {\n const from = start + (match.index ?? 0);\n const to = from + match[0].length;\n ranges.push({ from, to });\n }\n return false;\n });\n return ranges;\n }\n normalizeActiveIndex() {\n if (this._activeIndex != null) {\n this._activeIndex = rotateIndex(this._activeIndex, this._ranges.length);\n }\n }\n createDecorationSet(doc) {\n const decorations = this._ranges.map((deco, index) => {\n return Decoration.inline(\n deco.from,\n deco.to,\n index === this._activeIndex ? this.options.activeDecoration : this.options.decoration\n );\n });\n return DecorationSet.create(doc, decorations);\n }\n /**\n * Dispatch an empty transaction to trigger an update of the decoration.\n */\n updateView(tr, dispatch) {\n this._updating = true;\n if (dispatch) {\n dispatch(tr);\n }\n this._updating = false;\n return true;\n }\n scrollToActiveResult() {\n var _a;\n if (this._activeIndex == null) {\n return;\n }\n const activeResult = this._ranges[this._activeIndex];\n if (!activeResult) {\n return;\n }\n const view = this.store.view;\n const maxSize = view.state.doc.content.size;\n const pos = activeResult.from;\n if (pos > maxSize) {\n return;\n }\n const dom = view.domAtPos(pos).node;\n (_a = dom == null ? void 0 : dom.scrollIntoView) == null ? void 0 : _a.call(dom, { block: \"nearest\", behavior: \"smooth\" });\n }\n};\n__decorateClass([\n command()\n], FindExtension.prototype, \"find\", 1);\n__decorateClass([\n command()\n], FindExtension.prototype, \"stopFind\", 1);\n__decorateClass([\n command()\n], FindExtension.prototype, \"findAndReplace\", 1);\n__decorateClass([\n command()\n], FindExtension.prototype, \"findAndReplaceAll\", 1);\n__decorateClass([\n helper()\n], FindExtension.prototype, \"findRanges\", 1);\nFindExtension = __decorateClass([\n extension({\n defaultOptions: {\n decoration: { style: \"background-color: yellow;\" },\n activeDecoration: { style: \"background-color: orange;\" },\n alwaysFind: false\n }\n })\n], FindExtension);\nexport {\n FindExtension\n};\n", "/**\n * exclude array member from array\n * @param arr\n * @param excludeArr \n * @returns \n */\nexport const arrayExclude = (arr: any[], excludeArr: any[]) => {\n return arr.filter((item) => !excludeArr.includes(item))\n}\n", "import { arrayExclude } from '../../utils/common'\nimport type { NodeSerializerOptions } from '../../transform'\nimport { ParserRuleType } from '../../transform'\nimport type {\n ApplySchemaAttributes,\n NodeExtensionSpec,\n NodeSpecOverride,\n NodeViewMethod,\n PrioritizedKeyBindings,\n} from '@remirror/core'\nimport { NodeExtension, isElementDomNode, nodeInputRule } from '@remirror/core'\nimport type { ProsemirrorNode } from '@remirror/pm'\nimport { HtmlNodeView } from './html-block-view'\nimport type { InputRule } from '@remirror/pm/inputrules'\nimport { TextSelection } from '@remirror/pm/state'\nimport block_names from 'markdown-it/lib/common/html_blocks'\nimport { arrowHandler } from '../CodeMirror/codemirror-utils'\nimport { needSplitInlineHtmlTokenTags } from '@/transform/markdown-it-html-inline'\n\nexport class LineHtmlBlockExtension extends NodeExtension {\n get name() {\n return 'html_block' as const\n }\n\n createNodeSpec(extra: ApplySchemaAttributes, override: NodeSpecOverride): NodeExtensionSpec {\n return {\n group: 'block',\n content: 'text*',\n defining: true,\n ...override,\n code: true,\n marks: '',\n attrs: {\n language: { default: 'html' },\n ...extra.defaults(),\n },\n parseDOM: [\n {\n tag: 'pre',\n getAttrs: (node) => (isElementDomNode(node) ? extra.parse(node) : false),\n },\n ...(override.parseDOM ?? []),\n ],\n toDOM() {\n return ['pre', ['code', 0]]\n },\n isolating: true,\n }\n }\n\n createNodeViews(): NodeViewMethod {\n return (node: ProsemirrorNode, view, getPos) => {\n return new HtmlNodeView(node, view, getPos as () => number)\n }\n }\n\n createInputRules(): InputRule[] {\n const rules: InputRule[] = [\n nodeInputRule({\n regexp: new RegExp(\n '^</?(' +\n arrayExclude(block_names, needSplitInlineHtmlTokenTags).join('|') +\n ')(?=(\\\\s|/?>|$))',\n 'i',\n ),\n type: this.type,\n beforeDispatch: ({ tr, start, match }) => {\n const $pos = tr.doc.resolve(start)\n tr.setSelection(TextSelection.near($pos))\n tr.insertText(match[0])\n },\n }),\n ]\n\n return rules\n }\n\n createKeymap(): PrioritizedKeyBindings {\n return {\n ArrowLeft: arrowHandler('left'),\n ArrowRight: arrowHandler('right'),\n ArrowUp: arrowHandler('up'),\n ArrowDown: arrowHandler('down'),\n }\n }\n\n public fromMarkdown() {\n return [\n {\n type: ParserRuleType.block,\n token: 'html_block',\n node: this.name,\n hasOpenClose: false,\n },\n ] as const\n }\n\n public toMarkdown({ state, node }: NodeSerializerOptions) {\n state.write('\\n')\n state.text(node.textContent, false)\n state.text('\\n')\n state.closeBlock(node)\n state.ensureNewLine()\n }\n}\n", "import type { Node as ProseNode } from 'prosemirror-model'\nimport type { NodeView } from 'prosemirror-view'\nimport type { EditorView } from '@remirror/pm/view'\nimport type { ProsemirrorNode } from 'remirror'\nimport { type EditorSchema } from 'remirror'\nimport type { EditorView as CodeMirrorEditorView } from '@codemirror/view'\nimport { Compartment } from '@codemirror/state'\nimport MfCodemirrorView from '@/codemirror/codemirror'\nimport { minimalSetup } from '../CodeMirror/setup'\nimport { html } from '@codemirror/lang-html'\n\nfunction removeNewlines(str: string) {\n return str.replace(/\\n+|\\t/g, '')\n}\n\nexport class HtmlNodeView implements NodeView {\n // nodeview params\n private _node: ProseNode\n private _outerView: EditorView\n private _getPos: () => number\n\n // nodeview dom\n dom: HTMLElement\n private _htmlRenderElt: HTMLElement | undefined\n private _htmlSrcElt: HTMLElement | null = null\n private _innerView: CodeMirrorEditorView | undefined\n private readonly schema: EditorSchema\n private readonly languageConf: Compartment\n mfCodemirrorView?: MfCodemirrorView\n\n constructor(node: ProseNode, view: EditorView, getPos: () => number) {\n // store arguments\n this._node = node\n this._outerView = view\n this._getPos = getPos\n this.schema = node.type.schema\n\n // create dom representation of nodeview\n this.dom = document.createElement('div')\n this.dom.classList.add('html-node')\n\n this._htmlRenderElt = document.createElement('p')\n this._htmlRenderElt.textContent = ''\n this._htmlRenderElt.classList.add('html-node-render')\n\n const label = document.createElement('span')\n label.innerHTML = `<i class=\"ri-expand-left-right-line\"></i> HTML`\n label.classList.add('html-node-label')\n\n this.dom.appendChild(label)\n\n this.dom.appendChild(this._htmlRenderElt)\n\n this._htmlSrcElt = document.createElement('span')\n this._htmlSrcElt.classList.add('html-src', 'node-hide')\n\n this.languageConf = new Compartment()\n\n this.dom.appendChild(this._htmlSrcElt)\n\n this.dom.addEventListener('click', () => this.ensureFocus())\n label.addEventListener('click', () => this.ensureFocus())\n this.dom.addEventListener('mouseenter', this.handleMouseEnter)\n this.dom.addEventListener('mouseleave', this.handleMouseLeave)\n\n this.renderHtml()\n }\n\n /**\n * Ensure focus on the inner editor whenever this node has focus.\n * This helps to prevent accidental deletions of html blocks.\n */\n ensureFocus() {\n if (this._outerView.hasFocus()) {\n if (this._innerView) {\n this._innerView.focus()\n } else {\n this.openEditor()\n }\n }\n }\n\n ignoreMutation = () => true\n\n update(node: ProsemirrorNode): boolean {\n this._node = node\n return !!this.mfCodemirrorView?.update(node)\n }\n\n // == Events ===================================== //\n\n selectNode() {\n if (!this.mfCodemirrorView?.updating) {\n this.openEditor()\n }\n }\n\n deselectNode() {\n if (this.mfCodemirrorView?.updating) {\n this.closeEditor()\n }\n }\n\n handleMouseEnter = () => {\n this.dom.classList.add('node-enter')\n }\n\n handleMouseLeave = () => {\n this.dom.classList.remove('node-enter')\n }\n\n stopEvent(): boolean {\n return true\n }\n\n // == Rendering ===================================== //\n\n renderHtml() {\n if (!this._htmlRenderElt) {\n return\n }\n\n // get tex string to render\n const content = removeNewlines(this.mfCodemirrorView?.content || this._node.textContent)\n const texString = content.trim()\n\n if (texString.length < 1) {\n while (this._htmlRenderElt.firstChild) {\n this._htmlRenderElt.firstChild.remove()\n }\n return\n } else {\n // ignore\n }\n\n try {\n while (this._htmlRenderElt.firstChild) {\n this._htmlRenderElt.firstChild.remove()\n }\n\n this._htmlRenderElt.classList.remove('node-hide')\n this._htmlRenderElt.classList.add('node-show')\n\n this._htmlRenderElt.innerHTML = texString\n } catch (err) {}\n }\n\n // == Inner Editor ================================== /\n setSelection(anchor: number, head: number): void {\n if (!this._innerView) {\n this.openEditor()\n this.mfCodemirrorView!.setSelection(anchor, head)\n } else {\n this.mfCodemirrorView?.setSelection(anchor, head)\n }\n }\n\n openEditor() {\n if (this._innerView) {\n throw Error('inner view should not exist!')\n }\n\n const htmlLang = html()\n this.mfCodemirrorView = new MfCodemirrorView({\n view: this._outerView,\n node: this._node,\n getPos: this._getPos,\n languageName: 'html',\n createParams: {\n parent: this._htmlSrcElt!,\n },\n extensions: [\n minimalSetup,\n htmlLang\n ]\n })\n\n this._htmlSrcElt!.classList.remove('node-hide')\n this._innerView = this.mfCodemirrorView.cm\n this._htmlRenderElt?.classList.add('node-hide')\n\n const prevCursorPos: number = this._node.textContent.length || 0\n\n this.setSelection(prevCursorPos, prevCursorPos)\n\n this._innerView.focus()\n\n this._innerView.contentDOM.addEventListener('blur', () => {\n this.closeEditor(true)\n })\n\n this.mfCodemirrorView.forwardSelection()\n }\n\n destroy() {\n // close the inner editor without rendering\n this.closeEditor(false)\n // clean up dom elements\n if (this._htmlRenderElt) {\n this._htmlRenderElt.remove()\n delete this._htmlRenderElt\n }\n if (this._htmlSrcElt) {\n this._htmlSrcElt.remove()\n this._htmlSrcElt = null // fix for the error\n }\n\n this.dom.removeEventListener('mouseenter', this.handleMouseEnter)\n this.dom.removeEventListener('mouseleave', this.handleMouseLeave)\n this.dom.remove()\n }\n\n /**\n * Called when the inner ProseMirror editor should close.\n *\n * @param render Optionally update the rendered html after closing. (which\n * is generally what we want to do, since the user is done editing!)\n */\n closeEditor(render: boolean = true) {\n if (this._innerView) {\n this._innerView.destroy()\n this._innerView = undefined\n }\n if (this.mfCodemirrorView) {\n this.mfCodemirrorView.destroy()\n this.mfCodemirrorView = undefined\n }\n\n if (render) {\n this.renderHtml()\n }\n }\n}\n", "import type {\n Extension as CodeMirrorExtension,\n Transaction as CodeMirrorTransaction,\n} from '@codemirror/state'\nimport { Compartment, EditorState as CodeMirrorEditorState } from '@codemirror/state'\nimport type {\n Command as CodeMirrorCommand,\n KeyBinding as CodeMirrorKeyBinding,\n} from '@codemirror/view'\nimport { EditorView as CodeMirrorEditorView, keymap } from '@codemirror/view'\nimport { assertGet, isPromise, replaceNodeAtPosition } from '@remirror/core'\nimport type { EditorSchema, EditorView, ProsemirrorNode } from '@remirror/pm'\nimport { exitCode } from '@remirror/pm/commands'\nimport { Selection, TextSelection } from '@remirror/pm/state'\nimport { lightTheme } from '@markflowy/theme'\nimport type { LanguageDescription, LanguageSupport } from '@codemirror/language'\nimport { languages } from '@codemirror/language-data'\nimport { nanoid } from 'nanoid'\nimport type { LoadLanguage } from '../extensions/CodeMirror/codemirror-node-view'\nimport { createTheme } from './theme'\nimport type { CreateThemeOptions } from './theme'\n\nconst cmInstanceMap = new Map<string, MfCodemirrorView>()\nconst themeRef = { current: createTheme(lightTheme.codemirorTheme as CreateThemeOptions) }\n\nexport const changeTheme = (theme: CreateThemeOptions): void => {\n themeRef.current = createTheme(theme)\n cmInstanceMap.forEach((mfCmView) => {\n mfCmView.cm.dispatch({\n effects: mfCmView.editorTheme.reconfigure(themeRef.current),\n })\n })\n}\n\nclass MfCodemirrorView {\n private readonly view: EditorView\n\n private readonly getPos: () => number\n\n private readonly languageConf: Compartment\n\n private readonly toggleName = 'paragraph'\n\n private readonly schema: EditorSchema\n\n private languageName: string\n\n id = nanoid()\n\n cm: CodeMirrorEditorView\n\n content = ''\n\n node: ProsemirrorNode\n\n editorTheme: Compartment\n\n updating = false\n\n loadLanguage: LoadLanguage\n\n constructor({\n view,\n getPos,\n node,\n extensions = [],\n languageName,\n createParams = {},\n }: {\n node: ProsemirrorNode\n view: EditorView\n getPos: () => number\n extensions?: CodeMirrorExtension[] | null\n languageName: string\n createParams?: Record<string, any>\n }) {\n this.view = view\n this.getPos = getPos\n this.node = node\n this.languageConf = new Compartment()\n this.editorTheme = new Compartment()\n this.schema = node.type.schema\n this.languageName = languageName\n this.loadLanguage = loadLanguage\n\n this.content = this.node.textContent\n const changeFilter = CodeMirrorEditorState.changeFilter.of((tr: CodeMirrorTransaction) => {\n if (!tr.docChanged) {\n this.forwardSelection()\n }\n\n return true\n })\n\n const startState = CodeMirrorEditorState.create({\n doc: this.node.textContent as string,\n extensions: [\n keymap.of(this.codeMirrorKeymap()),\n changeFilter,\n this.languageConf.of([]),\n this.editorTheme.of(themeRef.current),\n ...(extensions ?? []),\n ],\n })\n\n // Create a CodeMirror instance\n this.cm = new CodeMirrorEditorView({\n state: startState,\n dispatch: this.valueChanged.bind(this),\n ...createParams,\n })\n\n cmInstanceMap.set(this.id, this)\n\n this.updateLanguage()\n }\n\n update(node: ProsemirrorNode): boolean {\n if (node.type !== this.node.type) {\n return false\n }\n\n this.node = node\n this.content = node.textContent\n this.updateLanguage()\n const change = computeChange(this.cm.state.doc.toString(), node.textContent)\n\n if (change) {\n this.updating = true\n this.cm.dispatch({\n changes: { from: change.from, to: change.to, insert: change.text },\n })\n this.updating = false\n }\n\n return true\n }\n\n setSelection(anchor: number, head: number): void {\n this.cm.focus()\n this.updating = true\n this.cm.dispatch({ selection: { anchor, head } })\n this.updating = false\n }\n\n updateLanguage() {\n const languageName = this.node.attrs.language\n if (languageName === this.languageName) {\n return\n }\n\n const language = this.loadLanguage(languageName)\n\n if (!language) {\n return\n }\n\n if (isPromise(language)) {\n language.then((lang) => {\n this.setLanguage(lang)\n this.languageName = languageName\n })\n return\n }\n\n this.setLanguage(language)\n this.languageName = languageName\n }\n\n destroy() {\n this.cm.destroy()\n cmInstanceMap.delete(this.id)\n }\n\n forwardSelection() {\n if (!this.cm.hasFocus) {\n return\n }\n\n const { state } = this.view\n const selection = this.asProseMirrorSelection(state.doc)\n\n if (!selection.eq(state.selection)) {\n this.view.dispatch(state.tr.setSelection(selection))\n }\n }\n\n private setLanguage(language: LanguageSupport) {\n this.cm.dispatch({\n effects: this.languageConf.reconfigure(language),\n })\n }\n\n private valueChanged(tr: CodeMirrorTransaction): void {\n if (!this.cm) return\n\n this.cm.update([tr])\n\n if (!tr.docChanged || this.updating) {\n return\n }\n\n const change = computeChange(this.node.textContent, tr.state.doc.toString())\n\n if (change) {\n const start = this.getPos() + 1\n const transaction = this.view.state.tr.replaceWith(\n start + change.from,\n start + change.to,\n change.text ? this.schema.text(change.text) : [],\n )\n this.view.dispatch(transaction)\n }\n }\n\n private asProseMirrorSelection(doc: ProsemirrorNode) {\n const start = this.getPos() + 1\n const { anchor, head } = this.cm.state.selection.main\n return TextSelection.between(doc.resolve(anchor + start), doc.resolve(head + start))\n }\n\n private codeMirrorKeymap(): CodeMirrorKeyBinding[] {\n return [\n {\n key: 'ArrowUp',\n run: this.maybeEscape('line', -1),\n },\n {\n key: 'ArrowLeft',\n run: this.maybeEscape('char', -1),\n },\n {\n key: 'ArrowDown',\n run: this.maybeEscape('line', 1),\n },\n {\n key: 'ArrowRight',\n run: this.maybeEscape('char', 1),\n },\n {\n key: 'Ctrl-Enter',\n run: () => {\n if (exitCode(this.view.state, this.view.dispatch)) {\n this.view.focus()\n return true\n }\n\n return false\n },\n },\n {\n key: 'Backspace',\n run: () => {\n const { ranges } = this.cm.state.selection\n\n if (!this.cm || !ranges || ranges.length > 1) {\n return false\n }\n\n const selection = ranges[0]\n\n if (selection && (!selection.empty || selection.anchor > 0)) {\n return false\n }\n\n // We don't want to convert a multi-line code block into a paragraph\n // because newline characters are invalid in a paragraph node.\n if (this.cm.state.doc.lines >= 2) {\n return false\n }\n\n const { state } = this.view\n const toggleNode = assertGet(state.schema.nodes, this.toggleName)\n const pos = this.getPos()\n\n const tr = replaceNodeAtPosition({\n pos,\n tr: state.tr,\n content: toggleNode.createChecked({}, this.node.content),\n })\n\n tr.setSelection(TextSelection.near(tr.doc.resolve(pos)))\n\n this.view.dispatch(tr)\n this.view.focus()\n return true\n },\n },\n ]\n }\n\n private maybeEscape(unit: 'line' | 'char', dir: 1 | -1): CodeMirrorCommand {\n return (view: CodeMirrorEditorView) => {\n const { state } = view\n\n // Exit if the selection is not empty\n if (state.selection.ranges.some((range) => !range.empty)) {\n return false\n }\n\n const { anchor } = state.selection.main\n\n const line = state.doc.lineAt(anchor)\n const lineOffset = anchor - line.from\n\n if (\n line.number !== (dir < 0 ? 1 : state.doc.lines) ||\n (unit === 'char' && lineOffset !== (dir < 0 ? 0 : line.length))\n ) {\n return false\n }\n\n const targetPos = this.getPos() + (dir < 0 ? 0 : this.node.nodeSize)\n const selection = Selection.near(this.view.state.doc.resolve(targetPos), dir)\n\n this.view.dispatch(this.view.state.tr.setSelection(selection).scrollIntoView())\n this.view.focus()\n return true\n }\n }\n}\n\nexport const getLanguageMap = (): Record<string, LanguageDescription> => {\n const languageMap: Record<string, LanguageDescription> = {}\n\n for (const language of languages ?? []) {\n for (const alias of language.alias) {\n languageMap[alias] = language\n }\n }\n\n return languageMap\n}\n\nexport const loadLanguage = (\n languageName: string,\n): Promise<LanguageSupport> | LanguageSupport | undefined => {\n if (typeof languageName !== 'string') {\n return undefined\n }\n\n const languageMap = getLanguageMap()\n const language = languageMap[languageName.toLowerCase()]\n\n if (!language) {\n return undefined\n }\n\n return language.support || language.load()\n}\n\nexport function computeChange(\n oldVal: string,\n newVal: string,\n): { from: number; to: number; text: string } | null {\n if (oldVal === newVal) {\n return null\n }\n\n let start = 0\n let oldEnd = oldVal.length\n let newEnd = newVal.length\n\n while (start < oldEnd && oldVal.charCodeAt(start) === newVal.charCodeAt(start)) {\n ++start\n }\n\n while (\n oldEnd > start &&\n newEnd > start &&\n oldVal.charCodeAt(oldEnd - 1) === newVal.charCodeAt(newEnd - 1)\n ) {\n oldEnd--\n newEnd--\n }\n\n return { from: start, to: oldEnd, text: newVal.slice(start, newEnd) }\n}\n\nexport default MfCodemirrorView\n", "import type { CreateThemeOptions } from '@uiw/codemirror-themes'\nimport { createTheme } from '@uiw/codemirror-themes'\n\nexport { createTheme }\nexport type { CreateThemeOptions }\n", "// Copied from https://github.com/codemirror/basic-setup/blob/main/src/basic-setup.ts\n\nimport {\n keymap,\n highlightSpecialChars,\n drawSelection,\n highlightActiveLine,\n dropCursor,\n rectangularSelection,\n crosshairCursor,\n lineNumbers,\n highlightActiveLineGutter,\n EditorView\n} from '@codemirror/view'\nimport type { Extension } from '@codemirror/state'\nimport { EditorState } from '@codemirror/state'\nimport {\n defaultHighlightStyle,\n syntaxHighlighting,\n indentOnInput,\n bracketMatching,\n foldGutter,\n foldKeymap,\n} from '@codemirror/language'\nimport { defaultKeymap, history, historyKeymap } from '@codemirror/commands'\nimport { searchKeymap, highlightSelectionMatches } from '@codemirror/search'\nimport {\n autocompletion,\n completionKeymap,\n closeBrackets,\n closeBracketsKeymap,\n} from '@codemirror/autocomplete'\nimport { lintKeymap } from '@codemirror/lint'\n\n// (The superfluous function calls around the list of extensions work\n// around current limitations in tree-shaking software.)\n\n/// This is an extension value that just pulls together a number of\n/// extensions that you might want in a basic editor. It is meant as a\n/// convenient helper to quickly set up CodeMirror without installing\n/// and importing a lot of separate packages.\n///\n/// Specifically, it includes...\n///\n/// - [the default command bindings](#commands.defaultKeymap)\n/// - [line numbers](#view.lineNumbers)\n/// - [special character highlighting](#view.highlightSpecialChars)\n/// - [the undo history](#commands.history)\n/// - [a fold gutter](#language.foldGutter)\n/// - [custom selection drawing](#view.drawSelection)\n/// - [drop cursor](#view.dropCursor)\n/// - [multiple selections](#state.EditorState^allowMultipleSelections)\n/// - [reindentation on input](#language.indentOnInput)\n/// - [the default highlight style](#language.defaultHighlightStyle) (as fallback)\n/// - [bracket matching](#language.bracketMatching)\n/// - [bracket closing](#autocomplete.closeBrackets)\n/// - [autocompletion](#autocomplete.autocompletion)\n/// - [rectangular selection](#view.rectangularSelection) and [crosshair cursor](#view.crosshairCursor)\n/// - [active line highlighting](#view.highlightActiveLine)\n/// - [active line gutter highlighting](#view.highlightActiveLineGutter)\n/// - [selection match highlighting](#search.highlightSelectionMatches)\n/// - [search](#search.searchKeymap)\n/// - [linting](#lint.lintKeymap)\n///\n/// (You'll probably want to add some language package to your setup\n/// too.)\n///\n/// This extension does not allow customization. The idea is that,\n/// once you decide you want to configure your editor more precisely,\n/// you take this package's source (which is just a bunch of imports\n/// and an array literal), copy it into your own code, and adjust it\n/// as desired.\nexport const basicSetup: Extension = (() => [\n EditorView.lineWrapping,\n\n lineNumbers({\n formatNumber: (line: number) => {\n return line % 10 === 0 || line === 1 ? `${line}` : ''\n }\n }),\n highlightActiveLineGutter(),\n highlightSpecialChars(),\n history(),\n foldGutter(),\n dropCursor(),\n EditorState.allowMultipleSelections.of(true),\n indentOnInput(),\n syntaxHighlighting(defaultHighlightStyle, { fallback: true }),\n bracketMatching(),\n closeBrackets(),\n autocompletion(),\n crosshairCursor(),\n highlightActiveLine(),\n highlightSelectionMatches(),\n keymap.of([\n ...closeBracketsKeymap,\n ...defaultKeymap,\n ...searchKeymap,\n ...historyKeymap,\n ...foldKeymap,\n ...completionKeymap,\n ...lintKeymap,\n ]),\n])()\n\n/// A minimal set of extensions to create a functional editor. Only\n/// includes [the default keymap](#commands.defaultKeymap), [undo\n/// history](#commands.history), [special character\n/// highlighting](#view.highlightSpecialChars), [custom selection\n/// drawing](#view.drawSelection), and [default highlight\n/// style](#language.defaultHighlightStyle).\nexport const minimalSetup: Extension = (() => [\n dropCursor(),\n highlightSpecialChars(),\n history(),\n drawSelection(),\n rectangularSelection(),\n syntaxHighlighting(defaultHighlightStyle, { fallback: true }),\n keymap.of([\n ...closeBracketsKeymap,\n ...defaultKeymap,\n ...searchKeymap,\n ...historyKeymap,\n ...foldKeymap,\n ...completionKeymap,\n ...lintKeymap,\n ]),\n])()\n\nexport { EditorView } from '@codemirror/view'\n", "import { ContextTracker, ExternalTokenizer, LRParser } from '@lezer/lr';\nimport { styleTags, tags } from '@lezer/highlight';\nimport { parseMixed } from '@lezer/common';\n\n// This file was generated by lezer-generator. You probably shouldn't edit it.\nconst scriptText = 54,\n StartCloseScriptTag = 1,\n styleText = 55,\n StartCloseStyleTag = 2,\n textareaText = 56,\n StartCloseTextareaTag = 3,\n EndTag = 4,\n SelfClosingEndTag = 5,\n StartTag = 6,\n StartScriptTag = 7,\n StartStyleTag = 8,\n StartTextareaTag = 9,\n StartSelfClosingTag = 10,\n StartCloseTag = 11,\n NoMatchStartCloseTag = 12,\n MismatchedStartCloseTag = 13,\n missingCloseTag = 57,\n IncompleteCloseTag = 14,\n commentContent$1 = 58,\n Element = 20,\n TagName = 22,\n Attribute = 23,\n AttributeName = 24,\n AttributeValue = 26,\n UnquotedAttributeValue = 27,\n ScriptText = 28,\n StyleText = 31,\n TextareaText = 34,\n OpenTag = 36,\n CloseTag = 37,\n Dialect_noMatch = 0,\n Dialect_selfClosing = 1;\n\n/* Hand-written tokenizers for HTML. */\n\nconst selfClosers = {\n area: true, base: true, br: true, col: true, command: true,\n embed: true, frame: true, hr: true, img: true, input: true,\n keygen: true, link: true, meta: true, param: true, source: true,\n track: true, wbr: true, menuitem: true\n};\n\nconst implicitlyClosed = {\n dd: true, li: true, optgroup: true, option: true, p: true,\n rp: true, rt: true, tbody: true, td: true, tfoot: true,\n th: true, tr: true\n};\n\nconst closeOnOpen = {\n dd: {dd: true, dt: true},\n dt: {dd: true, dt: true},\n li: {li: true},\n option: {option: true, optgroup: true},\n optgroup: {optgroup: true},\n p: {\n address: true, article: true, aside: true, blockquote: true, dir: true,\n div: true, dl: true, fieldset: true, footer: true, form: true,\n h1: true, h2: true, h3: true, h4: true, h5: true, h6: true,\n header: true, hgroup: true, hr: true, menu: true, nav: true, ol: true,\n p: true, pre: true, section: true, table: true, ul: true\n },\n rp: {rp: true, rt: true},\n rt: {rp: true, rt: true},\n tbody: {tbody: true, tfoot: true},\n td: {td: true, th: true},\n tfoot: {tbody: true},\n th: {td: true, th: true},\n thead: {tbody: true, tfoot: true},\n tr: {tr: true}\n};\n\nfunction nameChar(ch) {\n return ch == 45 || ch == 46 || ch == 58 || ch >= 65 && ch <= 90 || ch == 95 || ch >= 97 && ch <= 122 || ch >= 161\n}\n\nfunction isSpace(ch) {\n return ch == 9 || ch == 10 || ch == 13 || ch == 32\n}\n\nlet cachedName = null, cachedInput = null, cachedPos = 0;\nfunction tagNameAfter(input, offset) {\n let pos = input.pos + offset;\n if (cachedPos == pos && cachedInput == input) return cachedName\n let next = input.peek(offset);\n while (isSpace(next)) next = input.peek(++offset);\n let name = \"\";\n for (;;) {\n if (!nameChar(next)) break\n name += String.fromCharCode(next);\n next = input.peek(++offset);\n }\n // Undefined to signal there's a <? or <!, null for just missing\n cachedInput = input; cachedPos = pos;\n return cachedName = name ? name.toLowerCase() : next == question || next == bang ? undefined : null\n}\n\nconst lessThan = 60, greaterThan = 62, slash = 47, question = 63, bang = 33, dash = 45;\n\nfunction ElementContext(name, parent) {\n this.name = name;\n this.parent = parent;\n this.hash = parent ? parent.hash : 0;\n for (let i = 0; i < name.length; i++) this.hash += (this.hash << 4) + name.charCodeAt(i) + (name.charCodeAt(i) << 8);\n}\n\nconst startTagTerms = [StartTag, StartSelfClosingTag, StartScriptTag, StartStyleTag, StartTextareaTag];\n\nconst elementContext = new ContextTracker({\n start: null,\n shift(context, term, stack, input) {\n return startTagTerms.indexOf(term) > -1 ? new ElementContext(tagNameAfter(input, 1) || \"\", context) : context\n },\n reduce(context, term) {\n return term == Element && context ? context.parent : context\n },\n reuse(context, node, stack, input) {\n let type = node.type.id;\n return type == StartTag || type == OpenTag\n ? new ElementContext(tagNameAfter(input, 1) || \"\", context) : context\n },\n hash(context) { return context ? context.hash : 0 },\n strict: false\n});\n\nconst tagStart = new ExternalTokenizer((input, stack) => {\n if (input.next != lessThan) {\n // End of file, close any open tags\n if (input.next < 0 && stack.context) input.acceptToken(missingCloseTag);\n return\n }\n input.advance();\n let close = input.next == slash;\n if (close) input.advance();\n let name = tagNameAfter(input, 0);\n if (name === undefined) return\n if (!name) return input.acceptToken(close ? IncompleteCloseTag : StartTag)\n\n let parent = stack.context ? stack.context.name : null;\n if (close) {\n if (name == parent) return input.acceptToken(StartCloseTag)\n if (parent && implicitlyClosed[parent]) return input.acceptToken(missingCloseTag, -2)\n if (stack.dialectEnabled(Dialect_noMatch)) return input.acceptToken(NoMatchStartCloseTag)\n for (let cx = stack.context; cx; cx = cx.parent) if (cx.name == name) return\n input.acceptToken(MismatchedStartCloseTag);\n } else {\n if (name == \"script\") return input.acceptToken(StartScriptTag)\n if (name == \"style\") return input.acceptToken(StartStyleTag)\n if (name == \"textarea\") return input.acceptToken(StartTextareaTag)\n if (selfClosers.hasOwnProperty(name)) return input.acceptToken(StartSelfClosingTag)\n if (parent && closeOnOpen[parent] && closeOnOpen[parent][name]) input.acceptToken(missingCloseTag, -1);\n else input.acceptToken(StartTag);\n }\n}, {contextual: true});\n\nconst commentContent = new ExternalTokenizer(input => {\n for (let dashes = 0, i = 0;; i++) {\n if (input.next < 0) {\n if (i) input.acceptToken(commentContent$1);\n break\n }\n if (input.next == dash) {\n dashes++;\n } else if (input.next == greaterThan && dashes >= 2) {\n if (i >= 3) input.acceptToken(commentContent$1, -2);\n break\n } else {\n dashes = 0;\n }\n input.advance();\n }\n});\n\nfunction inForeignElement(context) {\n for (; context; context = context.parent)\n if (context.name == \"svg\" || context.name == \"math\") return true\n return false\n}\n\nconst endTag = new ExternalTokenizer((input, stack) => {\n if (input.next == slash && input.peek(1) == greaterThan) {\n let selfClosing = stack.dialectEnabled(Dialect_selfClosing) || inForeignElement(stack.context);\n input.acceptToken(selfClosing ? SelfClosingEndTag : EndTag, 2);\n } else if (input.next == greaterThan) {\n input.acceptToken(EndTag, 1);\n }\n});\n\nfunction contentTokenizer(tag, textToken, endToken) {\n let lastState = 2 + tag.length;\n return new ExternalTokenizer(input => {\n // state means:\n // - 0 nothing matched\n // - 1 '<' matched\n // - 2 '</' + possibly whitespace matched\n // - 3-(1+tag.length) part of the tag matched\n // - lastState whole tag + possibly whitespace matched\n for (let state = 0, matchedLen = 0, i = 0;; i++) {\n if (input.next < 0) {\n if (i) input.acceptToken(textToken);\n break\n }\n if (state == 0 && input.next == lessThan ||\n state == 1 && input.next == slash ||\n state >= 2 && state < lastState && input.next == tag.charCodeAt(state - 2)) {\n state++;\n matchedLen++;\n } else if ((state == 2 || state == lastState) && isSpace(input.next)) {\n matchedLen++;\n } else if (state == lastState && input.next == greaterThan) {\n if (i > matchedLen)\n input.acceptToken(textToken, -matchedLen);\n else\n input.acceptToken(endToken, -(matchedLen - 2));\n break\n } else if ((input.next == 10 /* '\\n' */ || input.next == 13 /* '\\r' */) && i) {\n input.acceptToken(textToken, 1);\n break\n } else {\n state = matchedLen = 0;\n }\n input.advance();\n }\n })\n}\n\nconst scriptTokens = contentTokenizer(\"script\", scriptText, StartCloseScriptTag);\n\nconst styleTokens = contentTokenizer(\"style\", styleText, StartCloseStyleTag);\n\nconst textareaTokens = contentTokenizer(\"textarea\", textareaText, StartCloseTextareaTag);\n\nconst htmlHighlighting = styleTags({\n \"Text RawText\": tags.content,\n \"StartTag StartCloseTag SelfClosingEndTag EndTag\": tags.angleBracket,\n TagName: tags.tagName,\n \"MismatchedCloseTag/TagName\": [tags.tagName, tags.invalid],\n AttributeName: tags.attributeName,\n \"AttributeValue UnquotedAttributeValue\": tags.attributeValue,\n Is: tags.definitionOperator,\n \"EntityReference CharacterReference\": tags.character,\n Comment: tags.blockComment,\n ProcessingInst: tags.processingInstruction,\n DoctypeDecl: tags.documentMeta\n});\n\n// This file was generated by lezer-generator. You probably shouldn't edit it.\nconst parser = LRParser.deserialize({\n version: 14,\n states: \",xOVO!rOOO!WQ#tO'#CqO!]Q#tO'#CzO!bQ#tO'#C}O!gQ#tO'#DQO!lQ#tO'#DSO!qOaO'#CpO!|ObO'#CpO#XOdO'#CpO$eO!rO'#CpOOO`'#Cp'#CpO$lO$fO'#DTO$tQ#tO'#DVO$yQ#tO'#DWOOO`'#Dk'#DkOOO`'#DY'#DYQVO!rOOO%OQ&rO,59]O%WQ&rO,59fO%`Q&rO,59iO%hQ&rO,59lO%sQ&rO,59nOOOa'#D^'#D^O%{OaO'#CxO&WOaO,59[OOOb'#D_'#D_O&`ObO'#C{O&kObO,59[OOOd'#D`'#D`O&sOdO'#DOO'OOdO,59[OOO`'#Da'#DaO'WO!rO,59[O'_Q#tO'#DROOO`,59[,59[OOOp'#Db'#DbO'dO$fO,59oOOO`,59o,59oO'lQ#|O,59qO'qQ#|O,59rOOO`-E7W-E7WO'vQ&rO'#CsOOQW'#DZ'#DZO(UQ&rO1G.wOOOa1G.w1G.wO(^Q&rO1G/QOOOb1G/Q1G/QO(fQ&rO1G/TOOOd1G/T1G/TO(nQ&rO1G/WOOO`1G/W1G/WOOO`1G/Y1G/YO(yQ&rO1G/YOOOa-E7[-E7[O)RQ#tO'#CyOOO`1G.v1G.vOOOb-E7]-E7]O)WQ#tO'#C|OOOd-E7^-E7^O)]Q#tO'#DPOOO`-E7_-E7_O)bQ#|O,59mOOOp-E7`-E7`OOO`1G/Z1G/ZOOO`1G/]1G/]OOO`1G/^1G/^O)gQ,UO,59_OOQW-E7X-E7XOOOa7+$c7+$cOOOb7+$l7+$lOOOd7+$o7+$oOOO`7+$r7+$rOOO`7+$t7+$tO)rQ#|O,59eO)wQ#|O,59hO)|Q#|O,59kOOO`1G/X1G/XO*RO7[O'#CvO*dOMhO'#CvOOQW1G.y1G.yOOO`1G/P1G/POOO`1G/S1G/SOOO`1G/V1G/VOOOO'#D['#D[O*uO7[O,59bOOQW,59b,59bOOOO'#D]'#D]O+WOMhO,59bOOOO-E7Y-E7YOOQW1G.|1G.|OOOO-E7Z-E7Z\",\n stateData: \"+s~O!^OS~OUSOVPOWQOXROYTO[]O][O^^O`^Oa^Ob^Oc^Ox^O{_O!dZO~OfaO~OfbO~OfcO~OfdO~OfeO~O!WfOPlP!ZlP~O!XiOQoP!ZoP~O!YlORrP!ZrP~OUSOVPOWQOXROYTOZqO[]O][O^^O`^Oa^Ob^Oc^Ox^O!dZO~O!ZrO~P#dO![sO!euO~OfvO~OfwO~OS|OhyO~OS!OOhyO~OS!QOhyO~OS!SOT!TOhyO~OS!TOhyO~O!WfOPlX!ZlX~OP!WO!Z!XO~O!XiOQoX!ZoX~OQ!ZO!Z!XO~O!YlORrX!ZrX~OR!]O!Z!XO~O!Z!XO~P#dOf!_O~O![sO!e!aO~OS!bO~OS!cO~Oi!dOSgXhgXTgX~OS!fOhyO~OS!gOhyO~OS!hOhyO~OS!iOT!jOhyO~OS!jOhyO~Of!kO~Of!lO~Of!mO~OS!nO~Ok!qO!`!oO!b!pO~OS!rO~OS!sO~OS!tO~Oa!uOb!uOc!uO!`!wO!a!uO~Oa!xOb!xOc!xO!b!wO!c!xO~Oa!uOb!uOc!uO!`!{O!a!uO~Oa!xOb!xOc!xO!b!{O!c!xO~OT~bac!dx{!d~\",\n goto: \"%p!`PPPPPPPPPPPPPPPPPPPP!a!gP!mPP!yP!|#P#S#Y#]#`#f#i#l#r#x!aP!a!aP$O$U$l$r$x%O%U%[%bPPPPPPPP%hX^OX`pXUOX`pezabcde{}!P!R!UR!q!dRhUR!XhXVOX`pRkVR!XkXWOX`pRnWR!XnXXOX`pQrXR!XpXYOX`pQ`ORx`Q{aQ}bQ!PcQ!RdQ!UeZ!e{}!P!R!UQ!v!oR!z!vQ!y!pR!|!yQgUR!VgQjVR!YjQmWR![mQpXR!^pQtZR!`tS_O`ToXp\",\n nodeNames: \"\u26A0 StartCloseTag StartCloseTag StartCloseTag EndTag SelfClosingEndTag StartTag StartTag StartTag StartTag StartTag StartCloseTag StartCloseTag StartCloseTag IncompleteCloseTag Document Text EntityReference CharacterReference InvalidEntity Element OpenTag TagName Attribute AttributeName Is AttributeValue UnquotedAttributeValue ScriptText CloseTag OpenTag StyleText CloseTag OpenTag TextareaText CloseTag OpenTag CloseTag SelfClosingTag Comment ProcessingInst MismatchedCloseTag CloseTag DoctypeDecl\",\n maxTerm: 67,\n context: elementContext,\n nodeProps: [\n [\"closedBy\", -10,1,2,3,7,8,9,10,11,12,13,\"EndTag\",6,\"EndTag SelfClosingEndTag\",-4,21,30,33,36,\"CloseTag\"],\n [\"openedBy\", 4,\"StartTag StartCloseTag\",5,\"StartTag\",-4,29,32,35,37,\"OpenTag\"],\n [\"group\", -9,14,17,18,19,20,39,40,41,42,\"Entity\",16,\"Entity TextContent\",-3,28,31,34,\"TextContent Entity\"],\n [\"isolate\", -11,21,29,30,32,33,35,36,37,38,41,42,\"ltr\",-3,26,27,39,\"\"]\n ],\n propSources: [htmlHighlighting],\n skippedNodes: [0],\n repeatNodeCount: 9,\n tokenData: \"!<p!aR!YOX$qXY,QYZ,QZ[$q[]&X]^,Q^p$qpq,Qqr-_rs3_sv-_vw3}wxHYx}-_}!OH{!O!P-_!P!Q$q!Q![-_![!]Mz!]!^-_!^!_!$S!_!`!;x!`!a&X!a!c-_!c!}Mz!}#R-_#R#SMz#S#T1k#T#oMz#o#s-_#s$f$q$f%W-_%W%oMz%o%p-_%p&aMz&a&b-_&b1pMz1p4U-_4U4dMz4d4e-_4e$ISMz$IS$I`-_$I`$IbMz$Ib$Kh-_$Kh%#tMz%#t&/x-_&/x&EtMz&Et&FV-_&FV;'SMz;'S;:j!#|;:j;=`3X<%l?&r-_?&r?AhMz?Ah?BY$q?BY?MnMz?MnO$q!Z$|c`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr$qrs&}sv$qvw+Pwx(tx!^$q!^!_*V!_!a&X!a#S$q#S#T&X#T;'S$q;'S;=`+z<%lO$q!R&bX`P!a`!cpOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&Xq'UV`P!cpOv&}wx'kx!^&}!^!_(V!_;'S&};'S;=`(n<%lO&}P'pT`POv'kw!^'k!_;'S'k;'S;=`(P<%lO'kP(SP;=`<%l'kp([S!cpOv(Vx;'S(V;'S;=`(h<%lO(Vp(kP;=`<%l(Vq(qP;=`<%l&}a({W`P!a`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t`)jT!a`Or)esv)ew;'S)e;'S;=`)y<%lO)e`)|P;=`<%l)ea*SP;=`<%l(t!Q*^V!a`!cpOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!Q*vP;=`<%l*V!R*|P;=`<%l&XW+UYkWOX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+PW+wP;=`<%l+P!Z+}P;=`<%l$q!a,]``P!a`!cp!^^OX&XXY,QYZ,QZ]&X]^,Q^p&Xpq,Qqr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!_-ljhS`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_*V!_!a&X!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q[/ebhSkWOX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+PS0rXhSqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0mS1bP;=`<%l0m[1hP;=`<%l/^!V1vchS`P!a`!cpOq&Xqr1krs&}sv1kvw0mwx(tx!P1k!P!Q&X!Q!^1k!^!_*V!_!a&X!a#s1k#s$f&X$f;'S1k;'S;=`3R<%l?Ah1k?Ah?BY&X?BY?Mn1k?MnO&X!V3UP;=`<%l1k!_3[P;=`<%l-_!Z3hV!`h`P!cpOv&}wx'kx!^&}!^!_(V!_;'S&};'S;=`(n<%lO&}!_4WihSkWc!ROX5uXZ7SZ[5u[^7S^p5uqr8trs7Sst>]tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^/^!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!Z5zbkWOX5uXZ7SZ[5u[^7S^p5uqr5urs7Sst+Ptw5uwx7Sx!]5u!]!^7w!^!a7S!a#S5u#S#T7S#T;'S5u;'S;=`8n<%lO5u!R7VVOp7Sqs7St!]7S!]!^7l!^;'S7S;'S;=`7q<%lO7S!R7qOa!R!R7tP;=`<%l7S!Z8OYkWa!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!Z8qP;=`<%l5u!_8{ihSkWOX5uXZ7SZ[5u[^7S^p5uqr8trs7Sst/^tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^:j!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!_:sbhSkWa!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!V<QchSOp7Sqr;{rs7Sst0mtw;{wx7Sx!P;{!P!Q7S!Q!];{!]!^=]!^!a7S!a#s;{#s$f7S$f;'S;{;'S;=`>P<%l?Ah;{?Ah?BY7S?BY?Mn;{?MnO7S!V=dXhSa!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!V>SP;=`<%l;{!_>YP;=`<%l8t!_>dhhSkWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^/^!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!Z@TakWOX@OXZAYZ[@O[^AY^p@Oqr@OrsAYsw@OwxAYx!]@O!]!^Az!^!aAY!a#S@O#S#TAY#T;'S@O;'S;=`Bq<%lO@O!RA]UOpAYq!]AY!]!^Ao!^;'SAY;'S;=`At<%lOAY!RAtOb!R!RAwP;=`<%lAY!ZBRYkWb!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!ZBtP;=`<%l@O!_COhhSkWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^Dj!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!_DsbhSkWb!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VFQbhSOpAYqrE{rsAYswE{wxAYx!PE{!P!QAY!Q!]E{!]!^GY!^!aAY!a#sE{#s$fAY$f;'SE{;'S;=`G|<%l?AhE{?Ah?BYAY?BY?MnE{?MnOAY!VGaXhSb!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!VHPP;=`<%lE{!_HVP;=`<%lBw!ZHcW!bx`P!a`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t!aIYlhS`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OKQ!O!P-_!P!Q$q!Q!^-_!^!_*V!_!a&X!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!aK_khS`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_*V!_!`&X!`!aMS!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!TM_X`P!a`!cp!eQOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!aNZ!ZhSfQ`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OMz!O!PMz!P!Q$q!Q![Mz![!]Mz!]!^-_!^!_*V!_!a&X!a!c-_!c!}Mz!}#R-_#R#SMz#S#T1k#T#oMz#o#s-_#s$f$q$f$}-_$}%OMz%O%W-_%W%oMz%o%p-_%p&aMz&a&b-_&b1pMz1p4UMz4U4dMz4d4e-_4e$ISMz$IS$I`-_$I`$IbMz$Ib$Je-_$Je$JgMz$Jg$Kh-_$Kh%#tMz%#t&/x-_&/x&EtMz&Et&FV-_&FV;'SMz;'S;:j!#|;:j;=`3X<%l?&r-_?&r?AhMz?Ah?BY$q?BY?MnMz?MnO$q!a!$PP;=`<%lMz!R!$ZY!a`!cpOq*Vqr!$yrs(Vsv*Vwx)ex!a*V!a!b!4t!b;'S*V;'S;=`*s<%lO*V!R!%Q]!a`!cpOr*Vrs(Vsv*Vwx)ex}*V}!O!%y!O!f*V!f!g!']!g#W*V#W#X!0`#X;'S*V;'S;=`*s<%lO*V!R!&QX!a`!cpOr*Vrs(Vsv*Vwx)ex}*V}!O!&m!O;'S*V;'S;=`*s<%lO*V!R!&vV!a`!cp!dPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!'dX!a`!cpOr*Vrs(Vsv*Vwx)ex!q*V!q!r!(P!r;'S*V;'S;=`*s<%lO*V!R!(WX!a`!cpOr*Vrs(Vsv*Vwx)ex!e*V!e!f!(s!f;'S*V;'S;=`*s<%lO*V!R!(zX!a`!cpOr*Vrs(Vsv*Vwx)ex!v*V!v!w!)g!w;'S*V;'S;=`*s<%lO*V!R!)nX!a`!cpOr*Vrs(Vsv*Vwx)ex!{*V!{!|!*Z!|;'S*V;'S;=`*s<%lO*V!R!*bX!a`!cpOr*Vrs(Vsv*Vwx)ex!r*V!r!s!*}!s;'S*V;'S;=`*s<%lO*V!R!+UX!a`!cpOr*Vrs(Vsv*Vwx)ex!g*V!g!h!+q!h;'S*V;'S;=`*s<%lO*V!R!+xY!a`!cpOr!+qrs!,hsv!+qvw!-Swx!.[x!`!+q!`!a!/j!a;'S!+q;'S;=`!0Y<%lO!+qq!,mV!cpOv!,hvx!-Sx!`!,h!`!a!-q!a;'S!,h;'S;=`!.U<%lO!,hP!-VTO!`!-S!`!a!-f!a;'S!-S;'S;=`!-k<%lO!-SP!-kO{PP!-nP;=`<%l!-Sq!-xS!cp{POv(Vx;'S(V;'S;=`(h<%lO(Vq!.XP;=`<%l!,ha!.aX!a`Or!.[rs!-Ssv!.[vw!-Sw!`!.[!`!a!.|!a;'S!.[;'S;=`!/d<%lO!.[a!/TT!a`{POr)esv)ew;'S)e;'S;=`)y<%lO)ea!/gP;=`<%l!.[!R!/sV!a`!cp{POr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!0]P;=`<%l!+q!R!0gX!a`!cpOr*Vrs(Vsv*Vwx)ex#c*V#c#d!1S#d;'S*V;'S;=`*s<%lO*V!R!1ZX!a`!cpOr*Vrs(Vsv*Vwx)ex#V*V#V#W!1v#W;'S*V;'S;=`*s<%lO*V!R!1}X!a`!cpOr*Vrs(Vsv*Vwx)ex#h*V#h#i!2j#i;'S*V;'S;=`*s<%lO*V!R!2qX!a`!cpOr*Vrs(Vsv*Vwx)ex#m*V#m#n!3^#n;'S*V;'S;=`*s<%lO*V!R!3eX!a`!cpOr*Vrs(Vsv*Vwx)ex#d*V#d#e!4Q#e;'S*V;'S;=`*s<%lO*V!R!4XX!a`!cpOr*Vrs(Vsv*Vwx)ex#X*V#X#Y!+q#Y;'S*V;'S;=`*s<%lO*V!R!4{Y!a`!cpOr!4trs!5ksv!4tvw!6Vwx!8]x!a!4t!a!b!:]!b;'S!4t;'S;=`!;r<%lO!4tq!5pV!cpOv!5kvx!6Vx!a!5k!a!b!7W!b;'S!5k;'S;=`!8V<%lO!5kP!6YTO!a!6V!a!b!6i!b;'S!6V;'S;=`!7Q<%lO!6VP!6lTO!`!6V!`!a!6{!a;'S!6V;'S;=`!7Q<%lO!6VP!7QOxPP!7TP;=`<%l!6Vq!7]V!cpOv!5kvx!6Vx!`!5k!`!a!7r!a;'S!5k;'S;=`!8V<%lO!5kq!7yS!cpxPOv(Vx;'S(V;'S;=`(h<%lO(Vq!8YP;=`<%l!5ka!8bX!a`Or!8]rs!6Vsv!8]vw!6Vw!a!8]!a!b!8}!b;'S!8];'S;=`!:V<%lO!8]a!9SX!a`Or!8]rs!6Vsv!8]vw!6Vw!`!8]!`!a!9o!a;'S!8];'S;=`!:V<%lO!8]a!9vT!a`xPOr)esv)ew;'S)e;'S;=`)y<%lO)ea!:YP;=`<%l!8]!R!:dY!a`!cpOr!4trs!5ksv!4tvw!6Vwx!8]x!`!4t!`!a!;S!a;'S!4t;'S;=`!;r<%lO!4t!R!;]V!a`!cpxPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!;uP;=`<%l!4t!V!<TXiS`P!a`!cpOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X\",\n tokenizers: [scriptTokens, styleTokens, textareaTokens, endTag, tagStart, commentContent, 0, 1, 2, 3, 4, 5],\n topRules: {\"Document\":[0,15]},\n dialects: {noMatch: 0, selfClosing: 485},\n tokenPrec: 487\n});\n\nfunction getAttrs(openTag, input) {\n let attrs = Object.create(null);\n for (let att of openTag.getChildren(Attribute)) {\n let name = att.getChild(AttributeName), value = att.getChild(AttributeValue) || att.getChild(UnquotedAttributeValue);\n if (name) attrs[input.read(name.from, name.to)] =\n !value ? \"\" : value.type.id == AttributeValue ? input.read(value.from + 1, value.to - 1) : input.read(value.from, value.to);\n }\n return attrs\n}\n\nfunction findTagName(openTag, input) {\n let tagNameNode = openTag.getChild(TagName);\n return tagNameNode ? input.read(tagNameNode.from, tagNameNode.to) : \" \"\n}\n\nfunction maybeNest(node, input, tags) {\n let attrs;\n for (let tag of tags) {\n if (!tag.attrs || tag.attrs(attrs || (attrs = getAttrs(node.node.parent.firstChild, input))))\n return {parser: tag.parser}\n }\n return null\n}\n\n// tags?: {\n// tag: string,\n// attrs?: ({[attr: string]: string}) => boolean,\n// parser: Parser\n// }[]\n// attributes?: {\n// name: string,\n// tagName?: string,\n// parser: Parser\n// }[]\n \nfunction configureNesting(tags = [], attributes = []) {\n let script = [], style = [], textarea = [], other = [];\n for (let tag of tags) {\n let array = tag.tag == \"script\" ? script : tag.tag == \"style\" ? style : tag.tag == \"textarea\" ? textarea : other;\n array.push(tag);\n }\n let attrs = attributes.length ? Object.create(null) : null;\n for (let attr of attributes) (attrs[attr.name] || (attrs[attr.name] = [])).push(attr);\n\n return parseMixed((node, input) => {\n let id = node.type.id;\n if (id == ScriptText) return maybeNest(node, input, script)\n if (id == StyleText) return maybeNest(node, input, style)\n if (id == TextareaText) return maybeNest(node, input, textarea)\n\n if (id == Element && other.length) {\n let n = node.node, open = n.firstChild, tagName = open && findTagName(open, input), attrs;\n if (tagName) for (let tag of other) {\n if (tag.tag == tagName && (!tag.attrs || tag.attrs(attrs || (attrs = getAttrs(n, input))))) {\n let close = n.lastChild;\n let to = close.type.id == CloseTag ? close.from : n.to;\n if (to > open.to)\n return {parser: tag.parser, overlay: [{from: open.to, to}]}\n }\n }\n }\n\n if (attrs && id == Attribute) {\n let n = node.node, nameNode;\n if (nameNode = n.firstChild) {\n let matches = attrs[input.read(nameNode.from, nameNode.to)];\n if (matches) for (let attr of matches) {\n if (attr.tagName && attr.tagName != findTagName(n.parent, input)) continue\n let value = n.lastChild;\n if (value.type.id == AttributeValue) {\n let from = value.from + 1;\n let last = value.lastChild, to = value.to - (last && last.isError ? 0 : 1);\n if (to > from) return {parser: attr.parser, overlay: [{from, to}]}\n } else if (value.type.id == UnquotedAttributeValue) {\n return {parser: attr.parser, overlay: [{from: value.from, to: value.to}]}\n }\n }\n }\n }\n return null\n })\n}\n\nexport { configureNesting, parser };\n", "import { ExternalTokenizer, LRParser, LocalTokenGroup } from '@lezer/lr';\nimport { styleTags, tags } from '@lezer/highlight';\n\n// This file was generated by lezer-generator. You probably shouldn't edit it.\nconst descendantOp = 99,\n Unit = 1,\n callee = 100,\n identifier = 101,\n VariableName = 2;\n\n/* Hand-written tokenizers for CSS tokens that can't be\n expressed by Lezer's built-in tokenizer. */\n\nconst space = [9, 10, 11, 12, 13, 32, 133, 160, 5760, 8192, 8193, 8194, 8195, 8196, 8197,\n 8198, 8199, 8200, 8201, 8202, 8232, 8233, 8239, 8287, 12288];\nconst colon = 58, parenL = 40, underscore = 95, bracketL = 91, dash = 45, period = 46,\n hash = 35, percent = 37, ampersand = 38, backslash = 92, newline = 10;\n\nfunction isAlpha(ch) { return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || ch >= 161 }\n\nfunction isDigit(ch) { return ch >= 48 && ch <= 57 }\n\nconst identifiers = new ExternalTokenizer((input, stack) => {\n for (let inside = false, dashes = 0, i = 0;; i++) {\n let {next} = input;\n if (isAlpha(next) || next == dash || next == underscore || (inside && isDigit(next))) {\n if (!inside && (next != dash || i > 0)) inside = true;\n if (dashes === i && next == dash) dashes++;\n input.advance();\n } else if (next == backslash && input.peek(1) != newline) {\n input.advance();\n if (input.next > -1) input.advance();\n inside = true;\n } else {\n if (inside)\n input.acceptToken(next == parenL ? callee : dashes == 2 && stack.canShift(VariableName) ? VariableName : identifier);\n break\n }\n }\n});\n\nconst descendant = new ExternalTokenizer(input => {\n if (space.includes(input.peek(-1))) {\n let {next} = input;\n if (isAlpha(next) || next == underscore || next == hash || next == period ||\n next == bracketL || next == colon && isAlpha(input.peek(1)) ||\n next == dash || next == ampersand)\n input.acceptToken(descendantOp);\n }\n});\n\nconst unitToken = new ExternalTokenizer(input => {\n if (!space.includes(input.peek(-1))) {\n let {next} = input;\n if (next == percent) { input.advance(); input.acceptToken(Unit); }\n if (isAlpha(next)) {\n do { input.advance(); } while (isAlpha(input.next))\n input.acceptToken(Unit);\n }\n }\n});\n\nconst cssHighlighting = styleTags({\n \"AtKeyword import charset namespace keyframes media supports\": tags.definitionKeyword,\n \"from to selector\": tags.keyword,\n NamespaceName: tags.namespace,\n KeyframeName: tags.labelName,\n KeyframeRangeName: tags.operatorKeyword,\n TagName: tags.tagName,\n ClassName: tags.className,\n PseudoClassName: tags.constant(tags.className),\n IdName: tags.labelName,\n \"FeatureName PropertyName\": tags.propertyName,\n AttributeName: tags.attributeName,\n NumberLiteral: tags.number,\n KeywordQuery: tags.keyword,\n UnaryQueryOp: tags.operatorKeyword,\n \"CallTag ValueName\": tags.atom,\n VariableName: tags.variableName,\n Callee: tags.operatorKeyword,\n Unit: tags.unit,\n \"UniversalSelector NestingSelector\": tags.definitionOperator,\n MatchOp: tags.compareOperator,\n \"ChildOp SiblingOp, LogicOp\": tags.logicOperator,\n BinOp: tags.arithmeticOperator,\n Important: tags.modifier,\n Comment: tags.blockComment,\n ColorLiteral: tags.color,\n \"ParenthesizedContent StringLiteral\": tags.string,\n \":\": tags.punctuation,\n \"PseudoOp #\": tags.derefOperator,\n \"; ,\": tags.separator,\n \"( )\": tags.paren,\n \"[ ]\": tags.squareBracket,\n \"{ }\": tags.brace\n});\n\n// This file was generated by lezer-generator. You probably shouldn't edit it.\nconst spec_callee = {__proto__:null,lang:32, \"nth-child\":32, \"nth-last-child\":32, \"nth-of-type\":32, \"nth-last-of-type\":32, dir:32, \"host-context\":32, url:60, \"url-prefix\":60, domain:60, regexp:60, selector:138};\nconst spec_AtKeyword = {__proto__:null,\"@import\":118, \"@media\":142, \"@charset\":146, \"@namespace\":150, \"@keyframes\":156, \"@supports\":168};\nconst spec_identifier = {__proto__:null,not:132, only:132};\nconst parser = LRParser.deserialize({\n version: 14,\n states: \":^QYQ[OOO#_Q[OOP#fOWOOOOQP'#Cd'#CdOOQP'#Cc'#CcO#kQ[O'#CfO$_QXO'#CaO$fQ[O'#ChO$qQ[O'#DTO$vQ[O'#DWOOQP'#Em'#EmO${QdO'#DgO%jQ[O'#DtO${QdO'#DvO%{Q[O'#DxO&WQ[O'#D{O&`Q[O'#ERO&nQ[O'#ETOOQS'#El'#ElOOQS'#EW'#EWQYQ[OOO&uQXO'#CdO'jQWO'#DcO'oQWO'#EsO'zQ[O'#EsQOQWOOP(UO#tO'#C_POOO)C@[)C@[OOQP'#Cg'#CgOOQP,59Q,59QO#kQ[O,59QO(aQ[O'#E[O({QWO,58{O)TQ[O,59SO$qQ[O,59oO$vQ[O,59rO(aQ[O,59uO(aQ[O,59wO(aQ[O,59xO)`Q[O'#DbOOQS,58{,58{OOQP'#Ck'#CkOOQO'#DR'#DROOQP,59S,59SO)gQWO,59SO)lQWO,59SOOQP'#DV'#DVOOQP,59o,59oOOQO'#DX'#DXO)qQ`O,59rOOQS'#Cp'#CpO${QdO'#CqO)yQvO'#CsO+ZQtO,5:ROOQO'#Cx'#CxO)lQWO'#CwO+oQWO'#CyO+tQ[O'#DOOOQS'#Ep'#EpOOQO'#Dj'#DjO+|Q[O'#DqO,[QWO'#EtO&`Q[O'#DoO,jQWO'#DrOOQO'#Eu'#EuO)OQWO,5:`O,oQpO,5:bOOQS'#Dz'#DzO,wQWO,5:dO,|Q[O,5:dOOQO'#D}'#D}O-UQWO,5:gO-ZQWO,5:mO-cQWO,5:oOOQS-E8U-E8UO${QdO,59}O-kQ[O'#E^O-xQWO,5;_O-xQWO,5;_POOO'#EV'#EVP.TO#tO,58yPOOO,58y,58yOOQP1G.l1G.lO.zQXO,5:vOOQO-E8Y-E8YOOQS1G.g1G.gOOQP1G.n1G.nO)gQWO1G.nO)lQWO1G.nOOQP1G/Z1G/ZO/XQ`O1G/^O/rQXO1G/aO0YQXO1G/cO0pQXO1G/dO1WQWO,59|O1]Q[O'#DSO1dQdO'#CoOOQP1G/^1G/^O${QdO1G/^O1kQpO,59]OOQS,59_,59_O${QdO,59aO1sQWO1G/mOOQS,59c,59cO1xQ!bO,59eOOQS'#DP'#DPOOQS'#EY'#EYO2QQ[O,59jOOQS,59j,59jO2YQWO'#DjO2eQWO,5:VO2jQWO,5:]O&`Q[O,5:XO&`Q[O'#E_O2rQWO,5;`O2}QWO,5:ZO(aQ[O,5:^OOQS1G/z1G/zOOQS1G/|1G/|OOQS1G0O1G0OO3`QWO1G0OO3eQdO'#EOOOQS1G0R1G0ROOQS1G0X1G0XOOQS1G0Z1G0ZO3pQtO1G/iOOQO,5:x,5:xO4WQ[O,5:xOOQO-E8[-E8[O4eQWO1G0yPOOO-E8T-E8TPOOO1G.e1G.eOOQP7+$Y7+$YOOQP7+$x7+$xO${QdO7+$xOOQS1G/h1G/hO4pQXO'#ErO4wQWO,59nO4|QtO'#EXO5tQdO'#EoO6OQWO,59ZO6TQpO7+$xOOQS1G.w1G.wOOQS1G.{1G.{OOQS7+%X7+%XO6]QWO1G/POOQS-E8W-E8WOOQS1G/U1G/UO${QdO1G/qOOQO1G/w1G/wOOQO1G/s1G/sO6bQWO,5:yOOQO-E8]-E8]O6pQXO1G/xOOQS7+%j7+%jO6wQYO'#CsOOQO'#EQ'#EQO7SQ`O'#EPOOQO'#EP'#EPO7_QWO'#E`O7gQdO,5:jOOQS,5:j,5:jO7rQtO'#E]O${QdO'#E]O8sQdO7+%TOOQO7+%T7+%TOOQO1G0d1G0dO9WQpO<<HdO9`QWO,5;^OOQP1G/Y1G/YOOQS-E8V-E8VO${QdO'#EZO9hQWO,5;ZOOQT1G.u1G.uOOQP<<Hd<<HdOOQS7+$k7+$kO9pQdO7+%]OOQO7+%d7+%dOOQO,5:k,5:kO3hQdO'#EaO7_QWO,5:zOOQS,5:z,5:zOOQS-E8^-E8^OOQS1G0U1G0UO9wQtO,5:wOOQS-E8Z-E8ZOOQO<<Ho<<HoOOQPAN>OAN>OO:xQdO,5:uOOQO-E8X-E8XOOQO<<Hw<<HwOOQO,5:{,5:{OOQO-E8_-E8_OOQS1G0f1G0f\",\n stateData: \";[~O#ZOS#[QQ~OUYOXYO]VO^VOqXOxWO![aO!]ZO!i[O!k]O!m^O!p_O!v`O#XRO#bTO~OQfOUYOXYO]VO^VOqXOxWO![aO!]ZO!i[O!k]O!m^O!p_O!v`O#XeO#bTO~O#U#gP~P!ZO#[jO~O#XlO~O]qO^qOqsOtoOxrO!OtO!RvO#VuO#bnO~O!TwO~P#pO`}O#WzO#XyO~O#X!OO~O#X!QO~OQ![Ob!TOf![Oh![On!YOq!ZO#W!WO#X!SO#e!UO~Ob!^O!d!`O!g!aO#X!]O!T#hP~Oh!fOn!YO#X!eO~Oh!hO#X!hO~Ob!^O!d!`O!g!aO#X!]O~O!Y#hP~P%jO]WX]!WX^WXqWXtWXxWX!OWX!RWX!TWX#VWX#bWX~O]!mO~O!Y!nO#U#gX!S#gX~O#U#gX!S#gX~P!ZO#]!qO#^!qO#_!sO~OUYOXYO]VO^VOqXOxWO#XRO#bTO~OtoO!TwO~O`!zO#WzO#XyO~O!S#gP~P!ZOb#RO~Ob#SO~Op#TO|#UO~OP#WObgXjgX!YgX!dgX!ggX#XgXagXQgXfgXhgXngXqgXtgX!XgX#UgX#WgX#egXpgX!SgX~Ob!^Oj#XO!d!`O!g!aO#X!]O!Y#hP~Ob#[O~Op#`O#X#]O~Ob!^O!d!`O!g!aO#X#aO~Ot#eO!b#dO!T#hX!Y#hX~Ob#hO~Oj#XO!Y#jO~O!Y#kO~Oh#lOn!YO~O!T#mO~O!TwO!b#dO~O!TwO!Y#pO~O!Y#QX#U#QX!S#QX~P!ZO!Y!nO#U#ga!S#ga~O#]!qO#^!qO#_#wO~O]qO^qOqsOxrO!OtO!RvO#VuO#bnO~Ot#Oa!T#Oaa#Oa~P.`Op#yO|#zO~O]qO^qOqsOxrO#bnO~Ot}i!O}i!R}i!T}i#V}ia}i~P/aOt!Pi!O!Pi!R!Pi!T!Pi#V!Pia!Pi~P/aOt!Qi!O!Qi!R!Qi!T!Qi#V!Qia!Qi~P/aO!S#{O~Oa#fP~P(aOa#cP~P${Oa$SOj#XO~O!Y$UO~Oh$VOo$VO~Op$XO#X#]O~O]!`Xa!^X!b!^X~O]$YO~Oa$ZO!b#dO~Ot#eO!T#ha!Y#ha~O!b#dOt!ca!T!ca!Y!caa!ca~O!Y$`O~O!S$gO#X$bO#e$aO~Oj#XOt$iO!X$kO!Y!Vi#U!Vi!S!Vi~P${O!Y#Qa#U#Qa!S#Qa~P!ZO!Y!nO#U#gi!S#gi~Oa#fX~P#pOa$oO~Oj#XOQ!{Xa!{Xb!{Xf!{Xh!{Xn!{Xq!{Xt!{X#W!{X#X!{X#e!{X~Ot$qOa#cX~P${Oa$sO~Oj#XOp$tO~Oa$uO~O!b#dOt#Ra!T#Ra!Y#Ra~Oa$wO~P.`OP#WOtgX!TgX~O#e$aOt!sX!T!sX~Ot$yO!TwO~O!S$}O#X$bO#e$aO~Oj#XOQ#PXb#PXf#PXh#PXn#PXq#PXt#PX!X#PX!Y#PX#U#PX#W#PX#X#PX#e#PX!S#PX~Ot$iO!X%QO!Y!Vq#U!Vq!S!Vq~P${Oj#XOp%RO~OtoOa#fa~Ot$qOa#ca~Oa%UO~P${Oj#XOQ#Pab#Paf#Pah#Pan#Paq#Pat#Pa!X#Pa!Y#Pa#U#Pa#W#Pa#X#Pa#e#Pa!S#Pa~Oa!}at!}a~P${O#Zo#[#ej!R#e~\",\n goto: \"-g#jPPP#kP#nP#w$WP#w$g#wPP$mPPP$s$|$|P%`P$|P$|%z&^PPPP$|&vP&z'Q#wP'W#w'^P#wP#w#wPPP'd'y(WPP#nPP(_(_(i(_P(_P(_(_P#nP#nP#nP(l#nP(o(r(u(|#nP#nP)R)X)h)v)|*S*^*d*n*t*zPPPPPPPPPP+Q+ZP+v+yP,o,r,x-RRkQ_bOPdhw!n#skYOPdhotuvw!n#R#h#skSOPdhotuvw!n#R#h#sQmTR!tnQ{VR!xqQ!x}Q#Z!XR#x!zq![Z]!T!m#S#U#X#q#z$P$Y$i$j$q$v%Sp![Z]!T!m#S#U#X#q#z$P$Y$i$j$q$v%SU$d#m$f$yR$x$cq!XZ]!T!m#S#U#X#q#z$P$Y$i$j$q$v%Sp![Z]!T!m#S#U#X#q#z$P$Y$i$j$q$v%SQ!f^R#l!gT#^!Z#_Q|VR!yqQ!x|R#x!yQ!PWR!{rQ!RXR!|sQxUQ!wpQ#i!cQ#o!jQ#p!kQ${$eR%X$zSgPwQ!phQ#r!nR$l#sZfPhw!n#sa!b[`a!V!^!`#d#eR#b!^R!g^R!i_R#n!iS$e#m$fR%V$yV$c#m$f$yQ!rjR#v!rQdOShPwU!ldh#sR#s!nQ$P#SU$p$P$v%SQ$v$YR%S$qQ#_!ZR$W#_Q$r$PR%T$rQpUS!vp$nR$n#|Q$j#qR%P$jQ!ogS#t!o#uR#u!pQ#f!_R$^#fQ$f#mR$|$fQ$z$eR%W$z_cOPdhw!n#s^UOPdhw!n#sQ!uoQ!}tQ#OuQ#PvQ#|#RR$_#hR$Q#SQ!VZQ!d]Q#V!TQ#q!m[$O#S$P$Y$q$v%SQ$R#UQ$T#XS$h#q$jQ$m#zR%O$iR#}#RQiPR#QwQ!c[Q!kaR#Y!VU!_[a!VQ!j`Q#c!^Q#g!`Q$[#dR$]#e\",\n nodeNames: \"\u26A0 Unit VariableName Comment StyleSheet RuleSet UniversalSelector TagSelector TagName NestingSelector ClassSelector ClassName PseudoClassSelector : :: PseudoClassName PseudoClassName ) ( ArgList ValueName ParenthesizedValue ColorLiteral NumberLiteral StringLiteral BinaryExpression BinOp CallExpression Callee CallLiteral CallTag ParenthesizedContent ] [ LineNames LineName , PseudoClassName ArgList IdSelector # IdName AttributeSelector AttributeName MatchOp ChildSelector ChildOp DescendantSelector SiblingSelector SiblingOp } { Block Declaration PropertyName Important ; ImportStatement AtKeyword import KeywordQuery FeatureQuery FeatureName BinaryQuery LogicOp UnaryQuery UnaryQueryOp ParenthesizedQuery SelectorQuery selector MediaStatement media CharsetStatement charset NamespaceStatement namespace NamespaceName KeyframesStatement keyframes KeyframeName KeyframeList KeyframeSelector KeyframeRangeName SupportsStatement supports AtRule Styles\",\n maxTerm: 117,\n nodeProps: [\n [\"isolate\", -2,3,24,\"\"],\n [\"openedBy\", 17,\"(\",32,\"[\",50,\"{\"],\n [\"closedBy\", 18,\")\",33,\"]\",51,\"}\"]\n ],\n propSources: [cssHighlighting],\n skippedNodes: [0,3,87],\n repeatNodeCount: 11,\n tokenData: \"J^~R!^OX$}X^%u^p$}pq%uqr)Xrs.Rst/utu6duv$}vw7^wx7oxy9^yz9oz{9t{|:_|}?Q}!O?c!O!P@Q!P!Q@i!Q![Ab![!]B]!]!^CX!^!_$}!_!`Cj!`!aC{!a!b$}!b!cDw!c!}$}!}#OFa#O#P$}#P#QFr#Q#R6d#R#T$}#T#UGT#U#c$}#c#dHf#d#o$}#o#pH{#p#q6d#q#rI^#r#sIo#s#y$}#y#z%u#z$f$}$f$g%u$g#BY$}#BY#BZ%u#BZ$IS$}$IS$I_%u$I_$I|$}$I|$JO%u$JO$JT$}$JT$JU%u$JU$KV$}$KV$KW%u$KW&FU$}&FU&FV%u&FV;'S$};'S;=`JW<%lO$}`%QSOy%^z;'S%^;'S;=`%o<%lO%^`%cSo`Oy%^z;'S%^;'S;=`%o<%lO%^`%rP;=`<%l%^~%zh#Z~OX%^X^'f^p%^pq'fqy%^z#y%^#y#z'f#z$f%^$f$g'f$g#BY%^#BY#BZ'f#BZ$IS%^$IS$I_'f$I_$I|%^$I|$JO'f$JO$JT%^$JT$JU'f$JU$KV%^$KV$KW'f$KW&FU%^&FU&FV'f&FV;'S%^;'S;=`%o<%lO%^~'mh#Z~o`OX%^X^'f^p%^pq'fqy%^z#y%^#y#z'f#z$f%^$f$g'f$g#BY%^#BY#BZ'f#BZ$IS%^$IS$I_'f$I_$I|%^$I|$JO'f$JO$JT%^$JT$JU'f$JU$KV%^$KV$KW'f$KW&FU%^&FU&FV'f&FV;'S%^;'S;=`%o<%lO%^l)[UOy%^z#]%^#]#^)n#^;'S%^;'S;=`%o<%lO%^l)sUo`Oy%^z#a%^#a#b*V#b;'S%^;'S;=`%o<%lO%^l*[Uo`Oy%^z#d%^#d#e*n#e;'S%^;'S;=`%o<%lO%^l*sUo`Oy%^z#c%^#c#d+V#d;'S%^;'S;=`%o<%lO%^l+[Uo`Oy%^z#f%^#f#g+n#g;'S%^;'S;=`%o<%lO%^l+sUo`Oy%^z#h%^#h#i,V#i;'S%^;'S;=`%o<%lO%^l,[Uo`Oy%^z#T%^#T#U,n#U;'S%^;'S;=`%o<%lO%^l,sUo`Oy%^z#b%^#b#c-V#c;'S%^;'S;=`%o<%lO%^l-[Uo`Oy%^z#h%^#h#i-n#i;'S%^;'S;=`%o<%lO%^l-uS!X[o`Oy%^z;'S%^;'S;=`%o<%lO%^~.UWOY.RZr.Rrs.ns#O.R#O#P.s#P;'S.R;'S;=`/o<%lO.R~.sOh~~.vRO;'S.R;'S;=`/P;=`O.R~/SXOY.RZr.Rrs.ns#O.R#O#P.s#P;'S.R;'S;=`/o;=`<%l.R<%lO.R~/rP;=`<%l.Rn/zYxQOy%^z!Q%^!Q![0j![!c%^!c!i0j!i#T%^#T#Z0j#Z;'S%^;'S;=`%o<%lO%^l0oYo`Oy%^z!Q%^!Q![1_![!c%^!c!i1_!i#T%^#T#Z1_#Z;'S%^;'S;=`%o<%lO%^l1dYo`Oy%^z!Q%^!Q![2S![!c%^!c!i2S!i#T%^#T#Z2S#Z;'S%^;'S;=`%o<%lO%^l2ZYf[o`Oy%^z!Q%^!Q![2y![!c%^!c!i2y!i#T%^#T#Z2y#Z;'S%^;'S;=`%o<%lO%^l3QYf[o`Oy%^z!Q%^!Q![3p![!c%^!c!i3p!i#T%^#T#Z3p#Z;'S%^;'S;=`%o<%lO%^l3uYo`Oy%^z!Q%^!Q![4e![!c%^!c!i4e!i#T%^#T#Z4e#Z;'S%^;'S;=`%o<%lO%^l4lYf[o`Oy%^z!Q%^!Q![5[![!c%^!c!i5[!i#T%^#T#Z5[#Z;'S%^;'S;=`%o<%lO%^l5aYo`Oy%^z!Q%^!Q![6P![!c%^!c!i6P!i#T%^#T#Z6P#Z;'S%^;'S;=`%o<%lO%^l6WSf[o`Oy%^z;'S%^;'S;=`%o<%lO%^d6gUOy%^z!_%^!_!`6y!`;'S%^;'S;=`%o<%lO%^d7QS|So`Oy%^z;'S%^;'S;=`%o<%lO%^b7cSXQOy%^z;'S%^;'S;=`%o<%lO%^~7rWOY7oZw7owx.nx#O7o#O#P8[#P;'S7o;'S;=`9W<%lO7o~8_RO;'S7o;'S;=`8h;=`O7o~8kXOY7oZw7owx.nx#O7o#O#P8[#P;'S7o;'S;=`9W;=`<%l7o<%lO7o~9ZP;=`<%l7on9cSb^Oy%^z;'S%^;'S;=`%o<%lO%^~9tOa~n9{UUQjWOy%^z!_%^!_!`6y!`;'S%^;'S;=`%o<%lO%^n:fWjW!RQOy%^z!O%^!O!P;O!P!Q%^!Q![>T![;'S%^;'S;=`%o<%lO%^l;TUo`Oy%^z!Q%^!Q![;g![;'S%^;'S;=`%o<%lO%^l;nYo`#e[Oy%^z!Q%^!Q![;g![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^l<cYo`Oy%^z{%^{|=R|}%^}!O=R!O!Q%^!Q![=j![;'S%^;'S;=`%o<%lO%^l=WUo`Oy%^z!Q%^!Q![=j![;'S%^;'S;=`%o<%lO%^l=qUo`#e[Oy%^z!Q%^!Q![=j![;'S%^;'S;=`%o<%lO%^l>[[o`#e[Oy%^z!O%^!O!P;g!P!Q%^!Q![>T![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^n?VSt^Oy%^z;'S%^;'S;=`%o<%lO%^l?hWjWOy%^z!O%^!O!P;O!P!Q%^!Q![>T![;'S%^;'S;=`%o<%lO%^n@VU#bQOy%^z!Q%^!Q![;g![;'S%^;'S;=`%o<%lO%^~@nTjWOy%^z{@}{;'S%^;'S;=`%o<%lO%^~AUSo`#[~Oy%^z;'S%^;'S;=`%o<%lO%^lAg[#e[Oy%^z!O%^!O!P;g!P!Q%^!Q![>T![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^bBbU]QOy%^z![%^![!]Bt!];'S%^;'S;=`%o<%lO%^bB{S^Qo`Oy%^z;'S%^;'S;=`%o<%lO%^nC^S!Y^Oy%^z;'S%^;'S;=`%o<%lO%^dCoS|SOy%^z;'S%^;'S;=`%o<%lO%^bDQU!OQOy%^z!`%^!`!aDd!a;'S%^;'S;=`%o<%lO%^bDkS!OQo`Oy%^z;'S%^;'S;=`%o<%lO%^bDzWOy%^z!c%^!c!}Ed!}#T%^#T#oEd#o;'S%^;'S;=`%o<%lO%^bEk[![Qo`Oy%^z}%^}!OEd!O!Q%^!Q![Ed![!c%^!c!}Ed!}#T%^#T#oEd#o;'S%^;'S;=`%o<%lO%^nFfSq^Oy%^z;'S%^;'S;=`%o<%lO%^nFwSp^Oy%^z;'S%^;'S;=`%o<%lO%^bGWUOy%^z#b%^#b#cGj#c;'S%^;'S;=`%o<%lO%^bGoUo`Oy%^z#W%^#W#XHR#X;'S%^;'S;=`%o<%lO%^bHYS!bQo`Oy%^z;'S%^;'S;=`%o<%lO%^bHiUOy%^z#f%^#f#gHR#g;'S%^;'S;=`%o<%lO%^fIQS!TUOy%^z;'S%^;'S;=`%o<%lO%^nIcS!S^Oy%^z;'S%^;'S;=`%o<%lO%^fItU!RQOy%^z!_%^!_!`6y!`;'S%^;'S;=`%o<%lO%^`JZP;=`<%l$}\",\n tokenizers: [descendant, unitToken, identifiers, 1, 2, 3, 4, new LocalTokenGroup(\"m~RRYZ[z{a~~g~aO#^~~dP!P!Qg~lO#_~~\", 28, 105)],\n topRules: {\"StyleSheet\":[0,4],\"Styles\":[1,86]},\n specialized: [{term: 100, get: (value) => spec_callee[value] || -1},{term: 58, get: (value) => spec_AtKeyword[value] || -1},{term: 101, get: (value) => spec_identifier[value] || -1}],\n tokenPrec: 1200\n});\n\nexport { parser };\n", "import { parser } from '@lezer/css';\nimport { syntaxTree, LRLanguage, indentNodeProp, continuedIndent, foldNodeProp, foldInside, LanguageSupport } from '@codemirror/language';\nimport { NodeWeakMap, IterMode } from '@lezer/common';\n\nlet _properties = null;\nfunction properties() {\n if (!_properties && typeof document == \"object\" && document.body) {\n let { style } = document.body, names = [], seen = new Set;\n for (let prop in style)\n if (prop != \"cssText\" && prop != \"cssFloat\") {\n if (typeof style[prop] == \"string\") {\n if (/[A-Z]/.test(prop))\n prop = prop.replace(/[A-Z]/g, ch => \"-\" + ch.toLowerCase());\n if (!seen.has(prop)) {\n names.push(prop);\n seen.add(prop);\n }\n }\n }\n _properties = names.sort().map(name => ({ type: \"property\", label: name }));\n }\n return _properties || [];\n}\nconst pseudoClasses = /*@__PURE__*/[\n \"active\", \"after\", \"any-link\", \"autofill\", \"backdrop\", \"before\",\n \"checked\", \"cue\", \"default\", \"defined\", \"disabled\", \"empty\",\n \"enabled\", \"file-selector-button\", \"first\", \"first-child\",\n \"first-letter\", \"first-line\", \"first-of-type\", \"focus\",\n \"focus-visible\", \"focus-within\", \"fullscreen\", \"has\", \"host\",\n \"host-context\", \"hover\", \"in-range\", \"indeterminate\", \"invalid\",\n \"is\", \"lang\", \"last-child\", \"last-of-type\", \"left\", \"link\", \"marker\",\n \"modal\", \"not\", \"nth-child\", \"nth-last-child\", \"nth-last-of-type\",\n \"nth-of-type\", \"only-child\", \"only-of-type\", \"optional\", \"out-of-range\",\n \"part\", \"placeholder\", \"placeholder-shown\", \"read-only\", \"read-write\",\n \"required\", \"right\", \"root\", \"scope\", \"selection\", \"slotted\", \"target\",\n \"target-text\", \"valid\", \"visited\", \"where\"\n].map(name => ({ type: \"class\", label: name }));\nconst values = /*@__PURE__*/[\n \"above\", \"absolute\", \"activeborder\", \"additive\", \"activecaption\", \"after-white-space\",\n \"ahead\", \"alias\", \"all\", \"all-scroll\", \"alphabetic\", \"alternate\", \"always\",\n \"antialiased\", \"appworkspace\", \"asterisks\", \"attr\", \"auto\", \"auto-flow\", \"avoid\", \"avoid-column\",\n \"avoid-page\", \"avoid-region\", \"axis-pan\", \"background\", \"backwards\", \"baseline\", \"below\",\n \"bidi-override\", \"blink\", \"block\", \"block-axis\", \"bold\", \"bolder\", \"border\", \"border-box\",\n \"both\", \"bottom\", \"break\", \"break-all\", \"break-word\", \"bullets\", \"button\", \"button-bevel\",\n \"buttonface\", \"buttonhighlight\", \"buttonshadow\", \"buttontext\", \"calc\", \"capitalize\",\n \"caps-lock-indicator\", \"caption\", \"captiontext\", \"caret\", \"cell\", \"center\", \"checkbox\", \"circle\",\n \"cjk-decimal\", \"clear\", \"clip\", \"close-quote\", \"col-resize\", \"collapse\", \"color\", \"color-burn\",\n \"color-dodge\", \"column\", \"column-reverse\", \"compact\", \"condensed\", \"contain\", \"content\",\n \"contents\", \"content-box\", \"context-menu\", \"continuous\", \"copy\", \"counter\", \"counters\", \"cover\",\n \"crop\", \"cross\", \"crosshair\", \"currentcolor\", \"cursive\", \"cyclic\", \"darken\", \"dashed\", \"decimal\",\n \"decimal-leading-zero\", \"default\", \"default-button\", \"dense\", \"destination-atop\", \"destination-in\",\n \"destination-out\", \"destination-over\", \"difference\", \"disc\", \"discard\", \"disclosure-closed\",\n \"disclosure-open\", \"document\", \"dot-dash\", \"dot-dot-dash\", \"dotted\", \"double\", \"down\", \"e-resize\",\n \"ease\", \"ease-in\", \"ease-in-out\", \"ease-out\", \"element\", \"ellipse\", \"ellipsis\", \"embed\", \"end\",\n \"ethiopic-abegede-gez\", \"ethiopic-halehame-aa-er\", \"ethiopic-halehame-gez\", \"ew-resize\", \"exclusion\",\n \"expanded\", \"extends\", \"extra-condensed\", \"extra-expanded\", \"fantasy\", \"fast\", \"fill\", \"fill-box\",\n \"fixed\", \"flat\", \"flex\", \"flex-end\", \"flex-start\", \"footnotes\", \"forwards\", \"from\",\n \"geometricPrecision\", \"graytext\", \"grid\", \"groove\", \"hand\", \"hard-light\", \"help\", \"hidden\", \"hide\",\n \"higher\", \"highlight\", \"highlighttext\", \"horizontal\", \"hsl\", \"hsla\", \"hue\", \"icon\", \"ignore\",\n \"inactiveborder\", \"inactivecaption\", \"inactivecaptiontext\", \"infinite\", \"infobackground\", \"infotext\",\n \"inherit\", \"initial\", \"inline\", \"inline-axis\", \"inline-block\", \"inline-flex\", \"inline-grid\",\n \"inline-table\", \"inset\", \"inside\", \"intrinsic\", \"invert\", \"italic\", \"justify\", \"keep-all\",\n \"landscape\", \"large\", \"larger\", \"left\", \"level\", \"lighter\", \"lighten\", \"line-through\", \"linear\",\n \"linear-gradient\", \"lines\", \"list-item\", \"listbox\", \"listitem\", \"local\", \"logical\", \"loud\", \"lower\",\n \"lower-hexadecimal\", \"lower-latin\", \"lower-norwegian\", \"lowercase\", \"ltr\", \"luminosity\", \"manipulation\",\n \"match\", \"matrix\", \"matrix3d\", \"medium\", \"menu\", \"menutext\", \"message-box\", \"middle\", \"min-intrinsic\",\n \"mix\", \"monospace\", \"move\", \"multiple\", \"multiple_mask_images\", \"multiply\", \"n-resize\", \"narrower\",\n \"ne-resize\", \"nesw-resize\", \"no-close-quote\", \"no-drop\", \"no-open-quote\", \"no-repeat\", \"none\",\n \"normal\", \"not-allowed\", \"nowrap\", \"ns-resize\", \"numbers\", \"numeric\", \"nw-resize\", \"nwse-resize\",\n \"oblique\", \"opacity\", \"open-quote\", \"optimizeLegibility\", \"optimizeSpeed\", \"outset\", \"outside\",\n \"outside-shape\", \"overlay\", \"overline\", \"padding\", \"padding-box\", \"painted\", \"page\", \"paused\",\n \"perspective\", \"pinch-zoom\", \"plus-darker\", \"plus-lighter\", \"pointer\", \"polygon\", \"portrait\",\n \"pre\", \"pre-line\", \"pre-wrap\", \"preserve-3d\", \"progress\", \"push-button\", \"radial-gradient\", \"radio\",\n \"read-only\", \"read-write\", \"read-write-plaintext-only\", \"rectangle\", \"region\", \"relative\", \"repeat\",\n \"repeating-linear-gradient\", \"repeating-radial-gradient\", \"repeat-x\", \"repeat-y\", \"reset\", \"reverse\",\n \"rgb\", \"rgba\", \"ridge\", \"right\", \"rotate\", \"rotate3d\", \"rotateX\", \"rotateY\", \"rotateZ\", \"round\",\n \"row\", \"row-resize\", \"row-reverse\", \"rtl\", \"run-in\", \"running\", \"s-resize\", \"sans-serif\", \"saturation\",\n \"scale\", \"scale3d\", \"scaleX\", \"scaleY\", \"scaleZ\", \"screen\", \"scroll\", \"scrollbar\", \"scroll-position\",\n \"se-resize\", \"self-start\", \"self-end\", \"semi-condensed\", \"semi-expanded\", \"separate\", \"serif\", \"show\",\n \"single\", \"skew\", \"skewX\", \"skewY\", \"skip-white-space\", \"slide\", \"slider-horizontal\",\n \"slider-vertical\", \"sliderthumb-horizontal\", \"sliderthumb-vertical\", \"slow\", \"small\", \"small-caps\",\n \"small-caption\", \"smaller\", \"soft-light\", \"solid\", \"source-atop\", \"source-in\", \"source-out\",\n \"source-over\", \"space\", \"space-around\", \"space-between\", \"space-evenly\", \"spell-out\", \"square\", \"start\",\n \"static\", \"status-bar\", \"stretch\", \"stroke\", \"stroke-box\", \"sub\", \"subpixel-antialiased\", \"svg_masks\",\n \"super\", \"sw-resize\", \"symbolic\", \"symbols\", \"system-ui\", \"table\", \"table-caption\", \"table-cell\",\n \"table-column\", \"table-column-group\", \"table-footer-group\", \"table-header-group\", \"table-row\",\n \"table-row-group\", \"text\", \"text-bottom\", \"text-top\", \"textarea\", \"textfield\", \"thick\", \"thin\",\n \"threeddarkshadow\", \"threedface\", \"threedhighlight\", \"threedlightshadow\", \"threedshadow\", \"to\", \"top\",\n \"transform\", \"translate\", \"translate3d\", \"translateX\", \"translateY\", \"translateZ\", \"transparent\",\n \"ultra-condensed\", \"ultra-expanded\", \"underline\", \"unidirectional-pan\", \"unset\", \"up\", \"upper-latin\",\n \"uppercase\", \"url\", \"var\", \"vertical\", \"vertical-text\", \"view-box\", \"visible\", \"visibleFill\",\n \"visiblePainted\", \"visibleStroke\", \"visual\", \"w-resize\", \"wait\", \"wave\", \"wider\", \"window\", \"windowframe\",\n \"windowtext\", \"words\", \"wrap\", \"wrap-reverse\", \"x-large\", \"x-small\", \"xor\", \"xx-large\", \"xx-small\"\n].map(name => ({ type: \"keyword\", label: name })).concat(/*@__PURE__*/[\n \"aliceblue\", \"antiquewhite\", \"aqua\", \"aquamarine\", \"azure\", \"beige\",\n \"bisque\", \"black\", \"blanchedalmond\", \"blue\", \"blueviolet\", \"brown\",\n \"burlywood\", \"cadetblue\", \"chartreuse\", \"chocolate\", \"coral\", \"cornflowerblue\",\n \"cornsilk\", \"crimson\", \"cyan\", \"darkblue\", \"darkcyan\", \"darkgoldenrod\",\n \"darkgray\", \"darkgreen\", \"darkkhaki\", \"darkmagenta\", \"darkolivegreen\",\n \"darkorange\", \"darkorchid\", \"darkred\", \"darksalmon\", \"darkseagreen\",\n \"darkslateblue\", \"darkslategray\", \"darkturquoise\", \"darkviolet\",\n \"deeppink\", \"deepskyblue\", \"dimgray\", \"dodgerblue\", \"firebrick\",\n \"floralwhite\", \"forestgreen\", \"fuchsia\", \"gainsboro\", \"ghostwhite\",\n \"gold\", \"goldenrod\", \"gray\", \"grey\", \"green\", \"greenyellow\", \"honeydew\",\n \"hotpink\", \"indianred\", \"indigo\", \"ivory\", \"khaki\", \"lavender\",\n \"lavenderblush\", \"lawngreen\", \"lemonchiffon\", \"lightblue\", \"lightcoral\",\n \"lightcyan\", \"lightgoldenrodyellow\", \"lightgray\", \"lightgreen\", \"lightpink\",\n \"lightsalmon\", \"lightseagreen\", \"lightskyblue\", \"lightslategray\",\n \"lightsteelblue\", \"lightyellow\", \"lime\", \"limegreen\", \"linen\", \"magenta\",\n \"maroon\", \"mediumaquamarine\", \"mediumblue\", \"mediumorchid\", \"mediumpurple\",\n \"mediumseagreen\", \"mediumslateblue\", \"mediumspringgreen\", \"mediumturquoise\",\n \"mediumvioletred\", \"midnightblue\", \"mintcream\", \"mistyrose\", \"moccasin\",\n \"navajowhite\", \"navy\", \"oldlace\", \"olive\", \"olivedrab\", \"orange\", \"orangered\",\n \"orchid\", \"palegoldenrod\", \"palegreen\", \"paleturquoise\", \"palevioletred\",\n \"papayawhip\", \"peachpuff\", \"peru\", \"pink\", \"plum\", \"powderblue\",\n \"purple\", \"rebeccapurple\", \"red\", \"rosybrown\", \"royalblue\", \"saddlebrown\",\n \"salmon\", \"sandybrown\", \"seagreen\", \"seashell\", \"sienna\", \"silver\", \"skyblue\",\n \"slateblue\", \"slategray\", \"snow\", \"springgreen\", \"steelblue\", \"tan\",\n \"teal\", \"thistle\", \"tomato\", \"turquoise\", \"violet\", \"wheat\", \"white\",\n \"whitesmoke\", \"yellow\", \"yellowgreen\"\n].map(name => ({ type: \"constant\", label: name })));\nconst tags = /*@__PURE__*/[\n \"a\", \"abbr\", \"address\", \"article\", \"aside\", \"b\", \"bdi\", \"bdo\", \"blockquote\", \"body\",\n \"br\", \"button\", \"canvas\", \"caption\", \"cite\", \"code\", \"col\", \"colgroup\", \"dd\", \"del\",\n \"details\", \"dfn\", \"dialog\", \"div\", \"dl\", \"dt\", \"em\", \"figcaption\", \"figure\", \"footer\",\n \"form\", \"header\", \"hgroup\", \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"hr\", \"html\", \"i\", \"iframe\",\n \"img\", \"input\", \"ins\", \"kbd\", \"label\", \"legend\", \"li\", \"main\", \"meter\", \"nav\", \"ol\", \"output\",\n \"p\", \"pre\", \"ruby\", \"section\", \"select\", \"small\", \"source\", \"span\", \"strong\", \"sub\", \"summary\",\n \"sup\", \"table\", \"tbody\", \"td\", \"template\", \"textarea\", \"tfoot\", \"th\", \"thead\", \"tr\", \"u\", \"ul\"\n].map(name => ({ type: \"type\", label: name }));\nconst identifier = /^(\\w[\\w-]*|-\\w[\\w-]*|)$/, variable = /^-(-[\\w-]*)?$/;\nfunction isVarArg(node, doc) {\n var _a;\n if (node.name == \"(\" || node.type.isError)\n node = node.parent || node;\n if (node.name != \"ArgList\")\n return false;\n let callee = (_a = node.parent) === null || _a === void 0 ? void 0 : _a.firstChild;\n if ((callee === null || callee === void 0 ? void 0 : callee.name) != \"Callee\")\n return false;\n return doc.sliceString(callee.from, callee.to) == \"var\";\n}\nconst VariablesByNode = /*@__PURE__*/new NodeWeakMap();\nconst declSelector = [\"Declaration\"];\nfunction astTop(node) {\n for (let cur = node;;) {\n if (cur.type.isTop)\n return cur;\n if (!(cur = cur.parent))\n return node;\n }\n}\nfunction variableNames(doc, node, isVariable) {\n if (node.to - node.from > 4096) {\n let known = VariablesByNode.get(node);\n if (known)\n return known;\n let result = [], seen = new Set, cursor = node.cursor(IterMode.IncludeAnonymous);\n if (cursor.firstChild())\n do {\n for (let option of variableNames(doc, cursor.node, isVariable))\n if (!seen.has(option.label)) {\n seen.add(option.label);\n result.push(option);\n }\n } while (cursor.nextSibling());\n VariablesByNode.set(node, result);\n return result;\n }\n else {\n let result = [], seen = new Set;\n node.cursor().iterate(node => {\n var _a;\n if (isVariable(node) && node.matchContext(declSelector) && ((_a = node.node.nextSibling) === null || _a === void 0 ? void 0 : _a.name) == \":\") {\n let name = doc.sliceString(node.from, node.to);\n if (!seen.has(name)) {\n seen.add(name);\n result.push({ label: name, type: \"variable\" });\n }\n }\n });\n return result;\n }\n}\n/**\nCreate a completion source for a CSS dialect, providing a\npredicate for determining what kind of syntax node can act as a\ncompletable variable. This is used by language modes like Sass and\nLess to reuse this package's completion logic.\n*/\nconst defineCSSCompletionSource = (isVariable) => context => {\n let { state, pos } = context, node = syntaxTree(state).resolveInner(pos, -1);\n let isDash = node.type.isError && node.from == node.to - 1 && state.doc.sliceString(node.from, node.to) == \"-\";\n if (node.name == \"PropertyName\" ||\n (isDash || node.name == \"TagName\") && /^(Block|Styles)$/.test(node.resolve(node.to).name))\n return { from: node.from, options: properties(), validFor: identifier };\n if (node.name == \"ValueName\")\n return { from: node.from, options: values, validFor: identifier };\n if (node.name == \"PseudoClassName\")\n return { from: node.from, options: pseudoClasses, validFor: identifier };\n if (isVariable(node) || (context.explicit || isDash) && isVarArg(node, state.doc))\n return { from: isVariable(node) || isDash ? node.from : pos,\n options: variableNames(state.doc, astTop(node), isVariable),\n validFor: variable };\n if (node.name == \"TagName\") {\n for (let { parent } = node; parent; parent = parent.parent)\n if (parent.name == \"Block\")\n return { from: node.from, options: properties(), validFor: identifier };\n return { from: node.from, options: tags, validFor: identifier };\n }\n if (!context.explicit)\n return null;\n let above = node.resolve(pos), before = above.childBefore(pos);\n if (before && before.name == \":\" && above.name == \"PseudoClassSelector\")\n return { from: pos, options: pseudoClasses, validFor: identifier };\n if (before && before.name == \":\" && above.name == \"Declaration\" || above.name == \"ArgList\")\n return { from: pos, options: values, validFor: identifier };\n if (above.name == \"Block\" || above.name == \"Styles\")\n return { from: pos, options: properties(), validFor: identifier };\n return null;\n};\n/**\nCSS property, variable, and value keyword completion source.\n*/\nconst cssCompletionSource = /*@__PURE__*/defineCSSCompletionSource(n => n.name == \"VariableName\");\n\n/**\nA language provider based on the [Lezer CSS\nparser](https://github.com/lezer-parser/css), extended with\nhighlighting and indentation information.\n*/\nconst cssLanguage = /*@__PURE__*/LRLanguage.define({\n name: \"css\",\n parser: /*@__PURE__*/parser.configure({\n props: [\n /*@__PURE__*/indentNodeProp.add({\n Declaration: /*@__PURE__*/continuedIndent()\n }),\n /*@__PURE__*/foldNodeProp.add({\n \"Block KeyframeList\": foldInside\n })\n ]\n }),\n languageData: {\n commentTokens: { block: { open: \"/*\", close: \"*/\" } },\n indentOnInput: /^\\s*\\}$/,\n wordChars: \"-\"\n }\n});\n/**\nLanguage support for CSS.\n*/\nfunction css() {\n return new LanguageSupport(cssLanguage, cssLanguage.data.of({ autocomplete: cssCompletionSource }));\n}\n\nexport { css, cssCompletionSource, cssLanguage, defineCSSCompletionSource };\n", "import { ContextTracker, ExternalTokenizer, LRParser, LocalTokenGroup } from '@lezer/lr';\nimport { styleTags, tags } from '@lezer/highlight';\n\n// This file was generated by lezer-generator. You probably shouldn't edit it.\nconst noSemi = 309,\n incdec = 1,\n incdecPrefix = 2,\n JSXStartTag = 3,\n insertSemi = 310,\n spaces = 312,\n newline = 313,\n LineComment = 4,\n BlockComment = 5,\n Dialect_jsx = 0;\n\n/* Hand-written tokenizers for JavaScript tokens that can't be\n expressed by lezer's built-in tokenizer. */\n\nconst space = [9, 10, 11, 12, 13, 32, 133, 160, 5760, 8192, 8193, 8194, 8195, 8196, 8197, 8198, 8199, 8200,\n 8201, 8202, 8232, 8233, 8239, 8287, 12288];\n\nconst braceR = 125, semicolon = 59, slash = 47, star = 42, plus = 43, minus = 45, lt = 60, comma = 44;\n\nconst trackNewline = new ContextTracker({\n start: false,\n shift(context, term) {\n return term == LineComment || term == BlockComment || term == spaces ? context : term == newline\n },\n strict: false\n});\n\nconst insertSemicolon = new ExternalTokenizer((input, stack) => {\n let {next} = input;\n if (next == braceR || next == -1 || stack.context)\n input.acceptToken(insertSemi);\n}, {contextual: true, fallback: true});\n\nconst noSemicolon = new ExternalTokenizer((input, stack) => {\n let {next} = input, after;\n if (space.indexOf(next) > -1) return\n if (next == slash && ((after = input.peek(1)) == slash || after == star)) return\n if (next != braceR && next != semicolon && next != -1 && !stack.context)\n input.acceptToken(noSemi);\n}, {contextual: true});\n\nconst incdecToken = new ExternalTokenizer((input, stack) => {\n let {next} = input;\n if (next == plus || next == minus) {\n input.advance();\n if (next == input.next) {\n input.advance();\n let mayPostfix = !stack.context && stack.canShift(incdec);\n input.acceptToken(mayPostfix ? incdec : incdecPrefix);\n }\n }\n}, {contextual: true});\n\nfunction identifierChar(ch, start) {\n return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || ch == 95 || ch >= 192 ||\n !start && ch >= 48 && ch <= 57\n}\n\nconst jsx = new ExternalTokenizer((input, stack) => {\n if (input.next != lt || !stack.dialectEnabled(Dialect_jsx)) return\n input.advance();\n if (input.next == slash) return\n // Scan for an identifier followed by a comma or 'extends', don't\n // treat this as a start tag if present.\n let back = 0;\n while (space.indexOf(input.next) > -1) { input.advance(); back++; }\n if (identifierChar(input.next, true)) {\n input.advance();\n back++;\n while (identifierChar(input.next, false)) { input.advance(); back++; }\n while (space.indexOf(input.next) > -1) { input.advance(); back++; }\n if (input.next == comma) return\n for (let i = 0;; i++) {\n if (i == 7) {\n if (!identifierChar(input.next, true)) return\n break\n }\n if (input.next != \"extends\".charCodeAt(i)) break\n input.advance();\n back++;\n }\n }\n input.acceptToken(JSXStartTag, -back);\n});\n\nconst jsHighlight = styleTags({\n \"get set async static\": tags.modifier,\n \"for while do if else switch try catch finally return throw break continue default case\": tags.controlKeyword,\n \"in of await yield void typeof delete instanceof\": tags.operatorKeyword,\n \"let var const using function class extends\": tags.definitionKeyword,\n \"import export from\": tags.moduleKeyword,\n \"with debugger as new\": tags.keyword,\n TemplateString: tags.special(tags.string),\n super: tags.atom,\n BooleanLiteral: tags.bool,\n this: tags.self,\n null: tags.null,\n Star: tags.modifier,\n VariableName: tags.variableName,\n \"CallExpression/VariableName TaggedTemplateExpression/VariableName\": tags.function(tags.variableName),\n VariableDefinition: tags.definition(tags.variableName),\n Label: tags.labelName,\n PropertyName: tags.propertyName,\n PrivatePropertyName: tags.special(tags.propertyName),\n \"CallExpression/MemberExpression/PropertyName\": tags.function(tags.propertyName),\n \"FunctionDeclaration/VariableDefinition\": tags.function(tags.definition(tags.variableName)),\n \"ClassDeclaration/VariableDefinition\": tags.definition(tags.className),\n PropertyDefinition: tags.definition(tags.propertyName),\n PrivatePropertyDefinition: tags.definition(tags.special(tags.propertyName)),\n UpdateOp: tags.updateOperator,\n \"LineComment Hashbang\": tags.lineComment,\n BlockComment: tags.blockComment,\n Number: tags.number,\n String: tags.string,\n Escape: tags.escape,\n ArithOp: tags.arithmeticOperator,\n LogicOp: tags.logicOperator,\n BitOp: tags.bitwiseOperator,\n CompareOp: tags.compareOperator,\n RegExp: tags.regexp,\n Equals: tags.definitionOperator,\n Arrow: tags.function(tags.punctuation),\n \": Spread\": tags.punctuation,\n \"( )\": tags.paren,\n \"[ ]\": tags.squareBracket,\n \"{ }\": tags.brace,\n \"InterpolationStart InterpolationEnd\": tags.special(tags.brace),\n \".\": tags.derefOperator,\n \", ;\": tags.separator,\n \"@\": tags.meta,\n\n TypeName: tags.typeName,\n TypeDefinition: tags.definition(tags.typeName),\n \"type enum interface implements namespace module declare\": tags.definitionKeyword,\n \"abstract global Privacy readonly override\": tags.modifier,\n \"is keyof unique infer\": tags.operatorKeyword,\n\n JSXAttributeValue: tags.attributeValue,\n JSXText: tags.content,\n \"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag\": tags.angleBracket,\n \"JSXIdentifier JSXNameSpacedName\": tags.tagName,\n \"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName\": tags.attributeName,\n \"JSXBuiltin/JSXIdentifier\": tags.standard(tags.tagName)\n});\n\n// This file was generated by lezer-generator. You probably shouldn't edit it.\nconst spec_identifier = {__proto__:null,export:18, as:23, from:31, default:34, async:39, function:40, extends:52, this:56, true:64, false:64, null:76, void:80, typeof:84, super:102, new:136, delete:152, yield:161, await:165, class:170, public:227, private:227, protected:227, readonly:229, instanceof:248, satisfies:251, in:252, const:254, import:286, keyof:339, unique:343, infer:349, is:385, abstract:405, implements:407, type:409, let:412, var:414, using:417, interface:423, enum:427, namespace:433, module:435, declare:439, global:443, for:462, of:471, while:474, with:478, do:482, if:486, else:488, switch:492, case:498, try:504, catch:508, finally:512, return:516, throw:520, break:524, continue:528, debugger:532};\nconst spec_word = {__proto__:null,async:123, get:125, set:127, declare:187, public:189, private:189, protected:189, static:191, abstract:193, override:195, readonly:201, accessor:203, new:389};\nconst spec_LessThan = {__proto__:null,\"<\":143};\nconst parser = LRParser.deserialize({\n version: 14,\n states: \"$<UO%TQ^OOO%[Q^OOO'_Q`OOP(lOWOOO*zQ08SO'#ChO+RO!bO'#CiO+aO#tO'#CiO+oO?MpO'#D^O.QQ^O'#DdO.bQ^O'#DoO%[Q^O'#DyO0fQ^O'#EROOQ07b'#EZ'#EZO1PQWO'#EWOOQO'#El'#ElOOQO'#Ie'#IeO1XQWO'#GmO1dQWO'#EkO1iQWO'#EkO3kQ08SO'#JiO6[Q08SO'#JjO6xQWO'#FZO6}Q&jO'#FqOOQ07b'#Fc'#FcO7YO,YO'#FcO7hQ7[O'#FxO9UQWO'#FwOOQ07b'#Jj'#JjOOQ07`'#Ji'#JiO9ZQWO'#GqOOQU'#KU'#KUO9fQWO'#IRO9kQ07hO'#ISOOQU'#JW'#JWOOQU'#IW'#IWQ`Q^OOO`Q^OOO%[Q^O'#DqO9sQ^O'#D}O9zQ^O'#EPO9aQWO'#GmO:RQ7[O'#CnO:aQWO'#EjO:lQWO'#EuO:qQ7[O'#FbO;`QWO'#GmOOQO'#KV'#KVO;eQWO'#KVO;sQWO'#GuO;sQWO'#GvO;sQWO'#GxO9aQWO'#G{O<jQWO'#HOO>RQWO'#CdO>cQWO'#H[O>kQWO'#HbO>kQWO'#HdO`Q^O'#HfO>kQWO'#HhO>kQWO'#HkO>pQWO'#HqO>uQ07iO'#HwO%[Q^O'#HyO?QQ07iO'#H{O?]Q07iO'#H}O9kQ07hO'#IPO?hQ08SO'#ChO@jQ`O'#DiQOQWOOO%[Q^O'#EPOAQQWO'#ESO:RQ7[O'#EjOA]QWO'#EjOAhQpO'#FbOOQU'#Cf'#CfOOQ07`'#Dn'#DnOOQ07`'#Jm'#JmO%[Q^O'#JmOOQO'#Jq'#JqOOQO'#Ib'#IbOBhQ`O'#EcOOQ07`'#Eb'#EbOCdQ07pO'#EcOCnQ`O'#EVOOQO'#Jp'#JpODSQ`O'#JqOEaQ`O'#EVOCnQ`O'#EcPEnO!0LbO'#CaPOOO)CDu)CDuOOOO'#IX'#IXOEyO!bO,59TOOQ07b,59T,59TOOOO'#IY'#IYOFXO#tO,59TO%[Q^O'#D`OOOO'#I['#I[OFgO?MpO,59xOOQ07b,59x,59xOFuQ^O'#I]OGYQWO'#JkOI[QrO'#JkO+}Q^O'#JkOIcQWO,5:OOIyQWO'#ElOJWQWO'#JyOJcQWO'#JxOJcQWO'#JxOJkQWO,5;YOJpQWO'#JwOOQ07f,5:Z,5:ZOJwQ^O,5:ZOLxQ08SO,5:eOMiQWO,5:mONSQ07hO'#JvONZQWO'#JuO9ZQWO'#JuONoQWO'#JuONwQWO,5;XON|QWO'#JuO!#UQrO'#JjOOQ07b'#Ch'#ChO%[Q^O'#ERO!#tQpO,5:rOOQO'#Jr'#JrOOQO-E<c-E<cO9aQWO,5=XO!$[QWO,5=XO!$aQ^O,5;VO!&dQ7[O'#EgO!'}QWO,5;VO!)mQ7[O'#DsO!)tQ^O'#DxO!*OQ`O,5;`O!*WQ`O,5;`O%[Q^O,5;`OOQU'#FR'#FROOQU'#FT'#FTO%[Q^O,5;aO%[Q^O,5;aO%[Q^O,5;aO%[Q^O,5;aO%[Q^O,5;aO%[Q^O,5;aO%[Q^O,5;aO%[Q^O,5;aO%[Q^O,5;aO%[Q^O,5;aO%[Q^O,5;aOOQU'#FX'#FXO!*fQ^O,5;rOOQ07b,5;w,5;wOOQ07b,5;x,5;xO!,iQWO,5;xOOQ07b,5;y,5;yO%[Q^O'#IiO!,qQ07hO,5<eO!&dQ7[O,5;aO!-`Q7[O,5;aO%[Q^O,5;uO!-gQ&jO'#FgO!.dQ&jO'#J}O!.OQ&jO'#J}O!.kQ&jO'#J}OOQO'#J}'#J}O!/PQ&jO,5<POOOS,5<],5<]O!/bQ^O'#FsOOOS'#Ih'#IhO7YO,YO,5;}O!/iQ&jO'#FuOOQ07b,5;},5;}O!0YQMhO'#CuOOQ07b'#Cy'#CyO!0mQWO'#CyO!0rO?MpO'#C}O!1`Q7[O,5<bO!1gQWO,5<dO!3SQ!LQO'#GSO!3aQWO'#GTO!3fQWO'#GTO!3kQ!LQO'#GXO!4jQ`O'#G]OOQO'#Gh'#GhO!(SQ7[O'#GgOOQO'#Gj'#GjO!(SQ7[O'#GiO!5]QMhO'#JdOOQ07b'#Jd'#JdO!5gQWO'#JcO!5uQWO'#JbO!5}QWO'#CtOOQ07b'#Cw'#CwOOQ07b'#DR'#DROOQ07b'#DT'#DTO1SQWO'#DVO!(SQ7[O'#FzO!(SQ7[O'#F|O!6VQWO'#GOO!6[QWO'#GPO!3fQWO'#GVO!(SQ7[O'#G[O!6aQWO'#EmO!7OQWO,5<cOOQ07`'#Cq'#CqO!7WQWO'#EnO!8QQ`O'#EoOOQ07`'#Jw'#JwO!8XQ07hO'#KWO9kQ07hO,5=]O`Q^O,5>mOOQU'#J`'#J`OOQU,5>n,5>nOOQU-E<U-E<UO!:ZQ08SO,5:]O!<wQ08SO,5:iO%[Q^O,5:iO!?bQ08SO,5:kOOQO,5@q,5@qO!@RQ7[O,5=XO!@aQ07hO'#JaO9UQWO'#JaO!@rQ07hO,59YO!@}Q`O,59YO!AVQ7[O,59YO:RQ7[O,59YO!AbQWO,5;VO!AjQWO'#HZO!BOQWO'#KZO%[Q^O,5;zO!7{Q`O,5;|O!BWQWO,5=tO!B]QWO,5=tO!BbQWO,5=tO9kQ07hO,5=tO;sQWO,5=dOOQO'#Cu'#CuO!BpQ`O,5=aO!BxQ7[O,5=bO!CTQWO,5=dO!CYQpO,5=gO!CbQWO'#KVO>pQWO'#HQO9aQWO'#HSO!CgQWO'#HSO:RQ7[O'#HUO!ClQWO'#HUOOQU,5=j,5=jO!CqQWO'#HVO!DSQWO'#CnO!DXQWO,59OO!DcQWO,59OO!FhQ^O,59OOOQU,59O,59OO!FxQ07hO,59OO%[Q^O,59OO!ITQ^O'#H^OOQU'#H_'#H_OOQU'#H`'#H`O`Q^O,5=vO!IkQWO,5=vO`Q^O,5=|O`Q^O,5>OO!IpQWO,5>QO`Q^O,5>SO!IuQWO,5>VO!IzQ^O,5>]OOQU,5>c,5>cO%[Q^O,5>cO9kQ07hO,5>eOOQU,5>g,5>gO!NUQWO,5>gOOQU,5>i,5>iO!NUQWO,5>iOOQU,5>k,5>kO!NZQ`O'#D[O%[Q^O'#JmO!NxQ`O'#JmO# gQ`O'#DjO# xQ`O'#DjO#$ZQ^O'#DjO#$bQWO'#JlO#$jQWO,5:TO#$oQWO'#EpO#$}QWO'#JzO#%VQWO,5;ZO#%[Q`O'#DjO#%iQ`O'#EUOOQ07b,5:n,5:nO%[Q^O,5:nO#%pQWO,5:nO>pQWO,5;UO!@}Q`O,5;UO!AVQ7[O,5;UO:RQ7[O,5;UO#%xQWO,5@XO#%}Q$ISO,5:rOOQO-E<`-E<`O#'TQ07pO,5:}OCnQ`O,5:qO#'_Q`O,5:qOCnQ`O,5:}O!@rQ07hO,5:qOOQ07`'#Ef'#EfOOQO,5:},5:}O%[Q^O,5:}O#'lQ07hO,5:}O#'wQ07hO,5:}O!@}Q`O,5:qOOQO,5;T,5;TO#(VQ07hO,5:}POOO'#IV'#IVP#(kO!0LbO,58{POOO,58{,58{OOOO-E<V-E<VOOQ07b1G.o1G.oOOOO-E<W-E<WO#(vQpO,59zOOOO-E<Y-E<YOOQ07b1G/d1G/dO#({QrO,5>wO+}Q^O,5>wOOQO,5>},5>}O#)VQ^O'#I]OOQO-E<Z-E<ZO#)dQWO,5@VO#)lQrO,5@VO#)sQWO,5@dOOQ07b1G/j1G/jO%[Q^O,5@eO#){QWO'#IcOOQO-E<a-E<aO#)sQWO,5@dOOQ07`1G0t1G0tOOQ07f1G/u1G/uOOQ07f1G0X1G0XO%[Q^O,5@bO#*aQ07hO,5@bO#*rQ07hO,5@bO#*yQWO,5@aO9ZQWO,5@aO#+RQWO,5@aO#+aQWO'#IfO#*yQWO,5@aOOQ07`1G0s1G0sO!*OQ`O,5:tO!*ZQ`O,5:tOOQO,5:v,5:vO#,RQWO,5:vO#,ZQ7[O1G2sO9aQWO1G2sOOQ07b1G0q1G0qO#,iQ08SO1G0qO#-nQ08QO,5;ROOQ07b'#GR'#GRO#.[Q08SO'#JdO!$aQ^O1G0qO#0dQ7[O'#JnO#0nQWO,5:_O#0sQrO'#JoO%[Q^O'#JoO#0}QWO,5:dOOQ07b'#D['#D[OOQ07b1G0z1G0zO%[Q^O1G0zOOQ07b1G1d1G1dO#1SQWO1G0zO#3kQ08SO1G0{O#3rQ08SO1G0{O#6]Q08SO1G0{O#6dQ08SO1G0{O#8nQ08SO1G0{O#9UQ08SO1G0{O#<OQ08SO1G0{O#<VQ08SO1G0{O#>jQ08SO1G0{O#>wQ08SO1G0{O#@uQ08SO1G0{O#CuQ(CYO'#ChO#EsQ(CYO1G1^O#EzQ(CYO'#JjO!,lQWO1G1dO#F[Q08SO,5?TOOQ07`-E<g-E<gO#GOQ08SO1G0{OOQ07b1G0{1G0{O#IZQ08SO1G1aO#I}Q&jO,5<TO#JVQ&jO,5<UO#J_Q&jO'#FlO#JvQWO'#FkOOQO'#KO'#KOOOQO'#Ig'#IgO#J{Q&jO1G1kOOQ07b1G1k1G1kOOOS1G1v1G1vO#K^Q(CYO'#JiO#KhQWO,5<_O!*fQ^O,5<_OOOS-E<f-E<fOOQ07b1G1i1G1iO#KmQ`O'#J}OOQ07b,5<a,5<aO#KuQ`O,5<aOOQ07b,59e,59eO!&dQ7[O'#DPOOOO'#IZ'#IZO#KzO?MpO,59iOOQ07b,59i,59iO%[Q^O1G1|O!6[QWO'#IkO#LVQ7[O,5<uOOQ07b,5<r,5<rO!(SQ7[O'#InO#LuQ7[O,5=RO!(SQ7[O'#IpO#MhQ7[O,5=TO!&dQ7[O,5=VOOQO1G2O1G2OO#MrQpO'#CqO#NVQpO,5<nO#N^QWO'#KRO9aQWO'#KRO#NlQWO,5<pO!(SQ7[O,5<oO#NqQWO'#GUO#N|QWO,5<oO$ RQpO'#GRO$ `QpO'#KSO$ jQWO'#KSO!&dQ7[O'#KSO$ oQWO,5<sO$ tQ`O'#G^O!4eQ`O'#G^O$!VQWO'#G`O$![QWO'#GbO!3fQWO'#GeO$!aQ07hO'#ImO$!lQ`O,5<wOOQ07f,5<w,5<wO$!sQ`O'#G^O$#RQ`O'#G_O$#ZQ`O'#G_O$#`Q7[O,5=RO$#pQ7[O,5=TOOQ07b,5=W,5=WO!(SQ7[O,5?}O!(SQ7[O,5?}O$$QQWO'#IrO$$]QWO,5?|O$$eQWO,59`O$%UQ7[O,59qOOQ07b,59q,59qO$%wQ7[O,5<fO$&jQ7[O,5<hO@bQWO,5<jOOQ07b,5<k,5<kO$&tQWO,5<qO$&yQ7[O,5<vO$'ZQWO'#JuO!$aQ^O1G1}O$'`QWO1G1}O9ZQWO'#JxO9ZQWO'#EpO%[Q^O'#EpO9ZQWO'#ItO$'eQ07hO,5@rOOQU1G2w1G2wOOQU1G4X1G4XOOQ07b1G/w1G/wO!,iQWO1G/wO$)jQ08SO1G0TOOQU1G2s1G2sO!&dQ7[O1G2sO%[Q^O1G2sO#,^QWO1G2sO$+nQ7[O'#EgOOQ07`,5?{,5?{O$+xQ07hO,5?{OOQU1G.t1G.tO!@rQ07hO1G.tO!@}Q`O1G.tO!AVQ7[O1G.tO$,ZQWO1G0qO$,`QWO'#ChO$,kQWO'#K[O$,sQWO,5=uO$,xQWO'#K[O$,}QWO'#K[O$-]QWO'#IzO$-kQWO,5@uO$-sQrO1G1fOOQ07b1G1h1G1hO9aQWO1G3`O@bQWO1G3`O$-zQWO1G3`O$.PQWO1G3`OOQU1G3`1G3`O!CTQWO1G3OO!&dQ7[O1G2{O$.UQWO1G2{OOQU1G2|1G2|O!&dQ7[O1G2|O$.ZQWO1G2|O$.cQ`O'#GzOOQU1G3O1G3OO!4eQ`O'#IvO!CYQpO1G3ROOQU1G3R1G3ROOQU,5=l,5=lO$.kQ7[O,5=nO9aQWO,5=nO$![QWO,5=pO9UQWO,5=pO!@}Q`O,5=pO!AVQ7[O,5=pO:RQ7[O,5=pO$.yQWO'#KYO$/UQWO,5=qOOQU1G.j1G.jO$/ZQ07hO1G.jO@bQWO1G.jO$/fQWO1G.jO9kQ07hO1G.jO$1kQrO,5@wO$1{QWO,5@wO9ZQWO,5@wO$2WQ^O,5=xO$2_QWO,5=xOOQU1G3b1G3bO`Q^O1G3bOOQU1G3h1G3hOOQU1G3j1G3jO>kQWO1G3lO$2dQ^O1G3nO$6hQ^O'#HmOOQU1G3q1G3qO$6uQWO'#HsO>pQWO'#HuOOQU1G3w1G3wO$6}Q^O1G3wO9kQ07hO1G3}OOQU1G4P1G4POOQ07`'#GY'#GYO9kQ07hO1G4RO9kQ07hO1G4TO$;UQWO,5@XO!*fQ^O,5;[O9ZQWO,5;[O>pQWO,5:UO!*fQ^O,5:UO!@}Q`O,5:UO$;ZQ(CYO,5:UOOQO,5;[,5;[O$;eQ`O'#I^O$;{QWO,5@WOOQ07b1G/o1G/oO$<TQ`O'#IdO$<_QWO,5@fOOQ07`1G0u1G0uO# xQ`O,5:UOOQO'#Ia'#IaO$<gQ`O,5:pOOQ07f,5:p,5:pO#%sQWO1G0YOOQ07b1G0Y1G0YO%[Q^O1G0YOOQ07b1G0p1G0pO>pQWO1G0pO!@}Q`O1G0pO!AVQ7[O1G0pOOQ07`1G5s1G5sO!@rQ07hO1G0]OOQO1G0i1G0iO%[Q^O1G0iO$<nQ07hO1G0iO$<yQ07hO1G0iO!@}Q`O1G0]OCnQ`O1G0]O$=XQ07hO1G0iOOQO1G0]1G0]O$=mQ08SO1G0iPOOO-E<T-E<TPOOO1G.g1G.gOOOO1G/f1G/fO$=wQpO,5<eO$>PQrO1G4cOOQO1G4i1G4iO%[Q^O,5>wO$>ZQWO1G5qO$>cQWO1G6OO$>kQrO1G6PO9ZQWO,5>}O$>uQ08SO1G5|O%[Q^O1G5|O$?VQ07hO1G5|O$?hQWO1G5{O$?hQWO1G5{O9ZQWO1G5{O$?pQWO,5?QO9ZQWO,5?QOOQO,5?Q,5?QO$@UQWO,5?QO$'ZQWO,5?QOOQO-E<d-E<dOOQO1G0`1G0`OOQO1G0b1G0bO!,lQWO1G0bOOQU7+(_7+(_O!&dQ7[O7+(_O%[Q^O7+(_O$@dQWO7+(_O$@oQ7[O7+(_O$@}Q08SO,5=RO$CYQ08SO,5=TO$EeQ08SO,5=RO$GvQ08SO,5=TO$JXQ08SO,59qO$LaQ08SO,5<fO$NlQ08SO,5<hO%!wQ08SO,5<vOOQ07b7+&]7+&]O%%YQ08SO7+&]O%%|Q7[O'#I_O%&WQWO,5@YOOQ07b1G/y1G/yO%&`Q^O'#I`O%&mQWO,5@ZO%&uQrO,5@ZOOQ07b1G0O1G0OO%'PQWO7+&fOOQ07b7+&f7+&fO%'UQ(CYO,5:eO%[Q^O7+&xO%'`Q(CYO,5:]O%'mQ(CYO,5:iO%'wQ(CYO,5:kOOQ07b7+'O7+'OOOQO1G1o1G1oOOQO1G1p1G1pO%(RQtO,5<WO!*fQ^O,5<VOOQO-E<e-E<eOOQ07b7+'V7+'VOOOS7+'b7+'bOOOS1G1y1G1yO%(^QWO1G1yOOQ07b1G1{1G1{O%(cQpO,59kOOOO-E<X-E<XOOQ07b1G/T1G/TO%(jQ08SO7+'hOOQ07b,5?V,5?VO%)^QpO,5?VOOQ07b1G2a1G2aP!&dQ7[O'#IkPOQ07b-E<i-E<iO%)|Q7[O,5?YOOQ07b-E<l-E<lO%*oQ7[O,5?[OOQ07b-E<n-E<nO%*yQpO1G2qOOQ07b1G2Y1G2YO%+QQWO'#IjO%+`QWO,5@mO%+`QWO,5@mO%+hQWO,5@mO%+sQWO,5@mOOQO1G2[1G2[O%,RQ7[O1G2ZO!(SQ7[O1G2ZO%,cQ!LQO'#IlO%,sQWO,5@nO!&dQ7[O,5@nO%,{QpO,5@nOOQ07b1G2_1G2_OOQ07`,5<x,5<xOOQ07`,5<y,5<yO$'ZQWO,5<yOC_QWO,5<yO!@}Q`O,5<xOOQO'#Ga'#GaO%-VQWO,5<zOOQ07`,5<|,5<|O$'ZQWO,5=POOQO,5?X,5?XOOQO-E<k-E<kOOQ07f1G2c1G2cO!4eQ`O,5<xO%-_QWO,5<yO$!VQWO,5<zO!4eQ`O,5<yO!(SQ7[O'#InO%.RQ7[O1G2mO!(SQ7[O'#IpO%.tQ7[O1G2oO%/OQ7[O1G5iO%/YQ7[O1G5iOOQO,5?^,5?^OOQO-E<p-E<pOOQO1G.z1G.zO!7{Q`O,59sO%[Q^O,59sO%/gQWO1G2UO!(SQ7[O1G2]O%/lQ08SO7+'iOOQ07b7+'i7+'iO!$aQ^O7+'iO%0`QWO,5;[OOQ07`,5?`,5?`OOQ07`-E<r-E<rOOQ07b7+%c7+%cO%0eQpO'#KTO#%sQWO7+(_O%0oQrO7+(_O$@gQWO7+(_O%0vQ08QO'#ChO%1ZQ08QO,5<}O%1{QWO,5<}OOQ07`1G5g1G5gOOQU7+$`7+$`O!@rQ07hO7+$`O!@}Q`O7+$`O!$aQ^O7+&]O%2QQWO'#IyO%2iQWO,5@vOOQO1G3a1G3aO9aQWO,5@vO%2iQWO,5@vO%2qQWO,5@vOOQO,5?f,5?fOOQO-E<x-E<xOOQ07b7+'Q7+'QO%2vQWO7+(zO9kQ07hO7+(zO9aQWO7+(zO@bQWO7+(zOOQU7+(j7+(jO%2{Q08QO7+(gO!&dQ7[O7+(gO%3VQpO7+(hOOQU7+(h7+(hO!&dQ7[O7+(hO%3^QWO'#KXO%3iQWO,5=fOOQO,5?b,5?bOOQO-E<t-E<tOOQU7+(m7+(mO%4xQ`O'#HTOOQU1G3Y1G3YO!&dQ7[O1G3YO%[Q^O1G3YO%5PQWO1G3YO%5[Q7[O1G3YO9kQ07hO1G3[O$![QWO1G3[O9UQWO1G3[O!@}Q`O1G3[O!AVQ7[O1G3[O%5jQWO'#IxO%6OQWO,5@tO%6WQ`O,5@tOOQ07`1G3]1G3]OOQU7+$U7+$UO@bQWO7+$UO9kQ07hO7+$UO%6cQWO7+$UO%[Q^O1G6cO%[Q^O1G6dO%6hQ07hO1G6cO%6rQ^O1G3dO%6yQWO1G3dO%7OQ^O1G3dOOQU7+(|7+(|O9kQ07hO7+)WO`Q^O7+)YOOQU'#K_'#K_OOQU'#I{'#I{O%7VQ^O,5>XOOQU,5>X,5>XO%[Q^O'#HnO%7dQWO'#HpOOQU,5>_,5>_O9ZQWO,5>_OOQU,5>a,5>aOOQU7+)c7+)cOOQU7+)i7+)iOOQU7+)m7+)mOOQU7+)o7+)oO%7iQ`O1G5sO%7}Q(CYO1G0vO%8XQWO1G0vOOQO1G/p1G/pO%8dQ(CYO1G/pO>pQWO1G/pO!*fQ^O'#DjOOQO,5>x,5>xOOQO-E<[-E<[OOQO,5?O,5?OOOQO-E<b-E<bO!@}Q`O1G/pOOQO-E<_-E<_OOQ07f1G0[1G0[OOQ07b7+%t7+%tO#%sQWO7+%tOOQ07b7+&[7+&[O>pQWO7+&[O!@}Q`O7+&[OOQO7+%w7+%wO$=mQ08SO7+&TOOQO7+&T7+&TO%[Q^O7+&TO%8nQ07hO7+&TO!@rQ07hO7+%wO!@}Q`O7+%wO%8yQ07hO7+&TO%9XQ08SO7++hO%[Q^O7++hO%9iQWO7++gO%9iQWO7++gOOQO1G4l1G4lO9ZQWO1G4lO%9qQWO1G4lOOQO7+%|7+%|O#%sQWO<<KyO%0oQrO<<KyO%:PQWO<<KyOOQU<<Ky<<KyO!&dQ7[O<<KyO%[Q^O<<KyO%:XQWO<<KyO%:dQ08SO,5?YO%<oQ08SO,5?[O%>zQ08SO1G2ZO%A]Q08SO1G2mO%ChQ08SO1G2oO%EsQ7[O,5>yOOQO-E<]-E<]O%E}QrO,5>zO%[Q^O,5>zOOQO-E<^-E<^O%FXQWO1G5uOOQ07b<<JQ<<JQO%FaQ(CYO1G0qO%HkQ(CYO1G0{O%HrQ(CYO1G0{O%JvQ(CYO1G0{O%J}Q(CYO1G0{O%LrQ(CYO1G0{O%MYQ(CYO1G0{O& mQ(CYO1G0{O& tQ(CYO1G0{O&#rQ(CYO1G0{O&$PQ(CYO1G0{O&%}Q(CYO1G0{O&&bQ08SO<<JdO&'gQ(CYO1G0{O&)]Q(CYO'#JdO&+`Q(CYO1G1aO&+mQ(CYO1G0TO!*fQ^O'#FnOOQO'#KP'#KPOOQO1G1r1G1rO&+wQWO1G1qO&+|Q(CYO,5?TOOOS7+'e7+'eOOOO1G/V1G/VOOQ07b1G4q1G4qO!(SQ7[O7+(]O&,WQWO,5?UO9aQWO,5?UOOQO-E<h-E<hO&,fQWO1G6XO&,fQWO1G6XO&,nQWO1G6XO&,yQ7[O7+'uO&-ZQpO,5?WO&-eQWO,5?WO!&dQ7[O,5?WOOQO-E<j-E<jO&-jQpO1G6YO&-tQWO1G6YOOQ07`1G2e1G2eO$'ZQWO1G2eOOQ07`1G2d1G2dO&-|QWO1G2fO!&dQ7[O1G2fOOQ07`1G2k1G2kO!@}Q`O1G2dOC_QWO1G2eO&.RQWO1G2fO&.ZQWO1G2eO&.}Q7[O,5?YOOQ07b-E<m-E<mO&/pQ7[O,5?[OOQ07b-E<o-E<oO!(SQ7[O7++TOOQ07b1G/_1G/_O&/zQWO1G/_OOQ07b7+'p7+'pO&0PQ7[O7+'wO&0aQ08SO<<KTOOQ07b<<KT<<KTO&1TQWO1G0vO!&dQ7[O'#IsO&1YQWO,5@oO!&dQ7[O1G2iOOQU<<Gz<<GzO!@rQ07hO<<GzO&1bQ08SO<<IwOOQ07b<<Iw<<IwOOQO,5?e,5?eO&2UQWO,5?eO&2ZQWO,5?eOOQO-E<w-E<wO&2iQWO1G6bO&2iQWO1G6bO9aQWO1G6bO@bQWO<<LfOOQU<<Lf<<LfO&2qQWO<<LfO9kQ07hO<<LfOOQU<<LR<<LRO%2{Q08QO<<LROOQU<<LS<<LSO%3VQpO<<LSO&2vQ`O'#IuO&3RQWO,5@sO!*fQ^O,5@sOOQU1G3Q1G3QO&3ZQ^O'#JmOOQO'#Iw'#IwO9kQ07hO'#IwO&3eQ`O,5=oOOQU,5=o,5=oO&3lQ`O'#EcO&4QQWO7+(tO&4VQWO7+(tOOQU7+(t7+(tO!&dQ7[O7+(tO%[Q^O7+(tO&4_QWO7+(tOOQU7+(v7+(vO9kQ07hO7+(vO$![QWO7+(vO9UQWO7+(vO!@}Q`O7+(vO&4jQWO,5?dOOQO-E<v-E<vOOQO'#HW'#HWO&4uQWO1G6`O9kQ07hO<<GpOOQU<<Gp<<GpO@bQWO<<GpO&4}QWO7++}O&5SQWO7+,OO%[Q^O7++}O%[Q^O7+,OOOQU7+)O7+)OO&5XQWO7+)OO&5^Q^O7+)OO&5eQWO7+)OOOQU<<Lr<<LrOOQU<<Lt<<LtOOQU-E<y-E<yOOQU1G3s1G3sO&5jQWO,5>YOOQU,5>[,5>[O&5oQWO1G3yO9ZQWO7+&bO!*fQ^O7+&bOOQO7+%[7+%[O&5tQ(CYO1G6PO>pQWO7+%[OOQ07b<<I`<<I`OOQ07b<<Iv<<IvO>pQWO<<IvOOQO<<Io<<IoO$=mQ08SO<<IoO%[Q^O<<IoOOQO<<Ic<<IcO!@rQ07hO<<IcO&6OQ07hO<<IoO&6ZQ08SO<= SO&6kQWO<= ROOQO7+*W7+*WO9ZQWO7+*WOOQUANAeANAeO&6sQWOANAeO!&dQ7[OANAeO#%sQWOANAeO%0oQrOANAeO%[Q^OANAeO&6{Q08SO7+'uO&9^Q08SO,5?YO&;iQ08SO,5?[O&=tQ08SO7+'wO&@VQrO1G4fO&@aQ(CYO7+&]O&BeQ(CYO,5=RO&DlQ(CYO,5=TO&D|Q(CYO,5=RO&E^Q(CYO,5=TO&EnQ(CYO,59qO&GqQ(CYO,5<fO&ItQ(CYO,5<hO&KwQ(CYO,5<vO&MmQ(CYO7+'hO&MzQ(CYO7+'iO&NXQWO,5<YOOQO7+']7+']O&N^Q7[O<<KwOOQO1G4p1G4pO&NeQWO1G4pO&NpQWO1G4pO' OQWO7++sO' OQWO7++sO!&dQ7[O1G4rO' WQpO1G4rO' bQWO7++tOOQ07`7+(P7+(PO$'ZQWO7+(QO' jQpO7+(QOOQ07`7+(O7+(OO$'ZQWO7+(PO' qQWO7+(QO!&dQ7[O7+(QOC_QWO7+(PO' vQ7[O<<NoOOQ07b7+$y7+$yO'!QQpO,5?_OOQO-E<q-E<qO'![Q08QO7+(TOOQUAN=fAN=fO9aQWO1G5POOQO1G5P1G5PO'!lQWO1G5PO'!qQWO7++|O'!qQWO7++|O9kQ07hOANBQO@bQWOANBQOOQUANBQANBQOOQUANAmANAmOOQUANAnANAnO'!yQWO,5?aOOQO-E<s-E<sO'#UQ(CYO1G6_O'%fQrO'#ChOOQO,5?c,5?cOOQO-E<u-E<uOOQU1G3Z1G3ZO&3ZQ^O,5<zOOQU<<L`<<L`O!&dQ7[O<<L`O&4QQWO<<L`O'%pQWO<<L`O%[Q^O<<L`OOQU<<Lb<<LbO9kQ07hO<<LbO$![QWO<<LbO9UQWO<<LbO'%xQ`O1G5OO'&TQWO7++zOOQUAN=[AN=[O9kQ07hOAN=[OOQU<= i<= iOOQU<= j<= jO'&]QWO<= iO'&bQWO<= jOOQU<<Lj<<LjO'&gQWO<<LjO'&lQ^O<<LjOOQU1G3t1G3tO>pQWO7+)eO'&sQWO<<I|O''OQ(CYO<<I|OOQO<<Hv<<HvOOQ07bAN?bAN?bOOQOAN?ZAN?ZO$=mQ08SOAN?ZOOQOAN>}AN>}O%[Q^OAN?ZOOQO<<Mr<<MrOOQUG27PG27PO!&dQ7[OG27PO#%sQWOG27PO''YQWOG27PO%0oQrOG27PO''bQ(CYO<<JdO''oQ(CYO1G2ZO')eQ(CYO,5?YO'+hQ(CYO,5?[O'-kQ(CYO1G2mO'/nQ(CYO1G2oO'1qQ(CYO<<KTO'2OQ(CYO<<IwOOQO1G1t1G1tO!(SQ7[OANAcOOQO7+*[7+*[O'2]QWO7+*[O'2hQWO<= _O'2pQpO7+*^OOQ07`<<Kl<<KlO$'ZQWO<<KlOOQ07`<<Kk<<KkO'2zQpO<<KlO$'ZQWO<<KkOOQO7+*k7+*kO9aQWO7+*kO'3RQWO<= hOOQUG27lG27lO9kQ07hOG27lO!*fQ^O1G4{O'3ZQWO7++yO&4QQWOANAzOOQUANAzANAzO!&dQ7[OANAzO'3cQWOANAzOOQUANA|ANA|O9kQ07hOANA|O$![QWOANA|OOQO'#HX'#HXOOQO7+*j7+*jOOQUG22vG22vOOQUANETANETOOQUANEUANEUOOQUANBUANBUO'3kQWOANBUOOQU<<MP<<MPO!*fQ^OAN?hOOQOG24uG24uO$=mQ08SOG24uO#%sQWOLD,kOOQULD,kLD,kO!&dQ7[OLD,kO'3pQWOLD,kO'3xQ(CYO7+'uO'5nQ(CYO,5?YO'7qQ(CYO,5?[O'9tQ(CYO7+'wO';jQ7[OG26}OOQO<<Mv<<MvOOQ07`ANAWANAWO$'ZQWOANAWOOQ07`ANAVANAVOOQO<<NV<<NVOOQULD-WLD-WO';zQ(CYO7+*gOOQUG27fG27fO&4QQWOG27fO!&dQ7[OG27fOOQUG27hG27hO9kQ07hOG27hOOQUG27pG27pO'<UQ(CYOG25SOOQOLD*aLD*aOOQU!$(!V!$(!VO#%sQWO!$(!VO!&dQ7[O!$(!VO'<`Q08SOG26}OOQ07`G26rG26rOOQULD-QLD-QO&4QQWOLD-QOOQULD-SLD-SOOQU!)9Eq!)9EqO#%sQWO!)9EqOOQU!$(!l!$(!lOOQU!.K;]!.K;]O'>qQ(CYOG26}O!*fQ^O'#DyO1PQWO'#EWO'@gQrO'#JiO!*fQ^O'#DqO'@nQ^O'#D}O'@uQrO'#ChO'C]QrO'#ChO!*fQ^O'#EPO'CmQ^O,5;VO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O'#IiO'EpQWO,5<eO'ExQ7[O,5;aO'GcQ7[O,5;aO!*fQ^O,5;uO!&dQ7[O'#GgO'ExQ7[O'#GgO!&dQ7[O'#GiO'ExQ7[O'#GiO1SQWO'#DVO1SQWO'#DVO!&dQ7[O'#FzO'ExQ7[O'#FzO!&dQ7[O'#F|O'ExQ7[O'#F|O!&dQ7[O'#G[O'ExQ7[O'#G[O!*fQ^O,5:iO!*fQ^O,5@eO'CmQ^O1G0qO'GjQ(CYO'#ChO!*fQ^O1G1|O!&dQ7[O'#InO'ExQ7[O'#InO!&dQ7[O'#IpO'ExQ7[O'#IpO!&dQ7[O,5<oO'ExQ7[O,5<oO'CmQ^O1G1}O!*fQ^O7+&xO!&dQ7[O1G2ZO'ExQ7[O1G2ZO!&dQ7[O'#InO'ExQ7[O'#InO!&dQ7[O'#IpO'ExQ7[O'#IpO!&dQ7[O1G2]O'ExQ7[O1G2]O'CmQ^O7+'iO'CmQ^O7+&]O!&dQ7[OANAcO'ExQ7[OANAcO'GtQWO'#EkO'GyQWO'#EkO'HRQWO'#FZO'HWQWO'#EuO'H]QWO'#JyO'HhQWO'#JwO'HsQWO,5;VO'HxQ7[O,5<bO'IPQWO'#GTO'IUQWO'#GTO'IZQWO,5<cO'IcQWO,5;VO'IkQ(CYO1G1^O'IrQWO,5<oO'IwQWO,5<oO'I|QWO,5<qO'JRQWO,5<qO'JWQWO1G1}O'J]QWO1G0qO'JbQ7[O<<KwO'JiQ7[O<<KwO7hQ7[O'#FxO9UQWO'#FwOA]QWO'#EjO!*fQ^O,5;rO!3fQWO'#GTO!3fQWO'#GTO!3fQWO'#GVO!3fQWO'#GVO!(SQ7[O7+(]O!(SQ7[O7+(]O%*yQpO1G2qO%*yQpO1G2qO!&dQ7[O,5=VO!&dQ7[O,5=V\",\n stateData: \"'Km~O'tOS'uOSSOS'vRQ~OPYOQYORfOX!VO`qOczOdyOlkOnYOokOpkOvkOxYOzYO!PWO!TkO!UkO![XO!fuO!kZO!nYO!oYO!pYO!rvO!twO!wxO!{]O#s!PO$T|O%b}O%d!QO%f!OO%g!OO%h!OO%k!RO%m!SO%p!TO%q!TO%s!UO&P!WO&V!XO&X!YO&Z!ZO&]![O&`!]O&f!^O&l!_O&n!`O&p!aO&r!bO&t!cO'{SO'}TO(QUO(XVO(g[O(tiO~OVtO~P`OPYOQYORfOc!jOd!iOlkOnYOokOpkOvkOxYOzYO!PWO!TkO!UkO![!eO!fuO!kZO!nYO!oYO!pYO!rvO!t!gO!w!hO$T!kO'{!dO'}TO(QUO(XVO(g[O(tiO~O`!vOo!nO!P!oO!_!xO!`!uO!a!uO!{:dO#P!pO#Q!pO#R!wO#S!pO#T!pO#W!yO#X!yO'|!lO'}TO(QUO([!mO(g!sO~O'v!zO~OP[XZ[X`[Xn[X|[X}[X!P[X!Y[X!h[X!i[X!k[X!o[X#[[X#geX#j[X#k[X#l[X#m[X#n[X#o[X#p[X#q[X#r[X#t[X#v[X#x[X#y[X$O[X'r[X(X[X(h[X(o[X(p[X~O!d$|X~P(qO^!|O'}#OO(O!|O(P#OO~O^#PO(P#OO(Q#OO(R#PO~Ot#RO!R#SO(Y#SO(Z#UO~OPYOQYORfOc!jOd!iOlkOnYOokOpkOvkOxYOzYO!PWO!TkO!UkO![!eO!fuO!kZO!nYO!oYO!pYO!rvO!t!gO!w!hO$T!kO'{:hO'}TO(QUO(XVO(g[O(tiO~O!X#YO!Y#VO!V(_P!V(lP~P+}O!Z#bO~P`OPYOQYORfOc!jOd!iOnYOokOpkOvkOxYOzYO!PWO!TkO!UkO![!eO!fuO!kZO!nYO!oYO!pYO!rvO!t!gO!w!hO$T!kO'}TO(QUO(XVO(g[O(tiO~Ol#lO!X#hO!{]O#e#kO#f#hO'{:iO!j(iP~P.iO!k#nO'{#mO~O!w#rO!{]O%b#sO~O#g#tO~O!d#uO#g#tO~OP$]OZ$dOn$QO|#yO}#zO!P#{O!Y$aO!h$SO!i#wO!k#xO!o$]O#j$OO#k$PO#l$PO#m$PO#n$RO#o$SO#p$SO#q$cO#r$SO#t$TO#v$VO#x$XO#y$YO(XVO(h$ZO(o#|O(p#}O~O`(]X'r(]X'p(]X!j(]X!V(]X![(]X%c(]X!d(]X~P1qO#[$eO$O$eOP(^XZ(^Xn(^X|(^X}(^X!P(^X!Y(^X!h(^X!k(^X!o(^X#j(^X#k(^X#l(^X#m(^X#n(^X#o(^X#p(^X#q(^X#r(^X#t(^X#v(^X#x(^X#y(^X(X(^X(h(^X(o(^X(p(^X![(^X%c(^X~O`(^X!i(^X'r(^X'p(^X!V(^X!j(^Xr(^X!d(^X~P4XO#[$eO~O$Y$gO$[$fO$c$lO~ORfO![$mO$f$nO$h$pO~Og%VOl%WOn$tOo$sOp$sOv%XOx%YOz%ZO!P${O![$|O!f%`O!k$xO#f%aO$T%^O$o%[O$q%]O$t%_O'{$rO'}TO(QUO(X$uO(o$}O(p%POf(UP~O!k%bO~O!P%eO![%fO'{%dO~O!d%jO~O`%kO'r%kO~O'|!lO~P%[O%h%rO~P%[Og%VO!k%bO'{%dO'|!lO~Od%yO!k%bO'{%dO~O#r$SO~O|&OO![%{O!k%}O%d&RO'{%dO'|!lO'}TO(QUO_(}P~O!w#rO~O%m&TO!P(yX![(yX'{(yX~O'{&UO~O!t&ZO#s!PO%d!QO%f!OO%g!OO%h!OO%k!RO%m!SO%p!TO%q!TO~Oc&`Od&_O!w&]O%b&^O%u&[O~P;xOc&cOdyO![&bO!t&ZO!wxO!{]O#s!PO%b}O%f!OO%g!OO%h!OO%k!RO%m!SO%p!TO%q!TO%s!UO~Oa&fO#[&iO%d&dO'|!lO~P<}O!k&jO!t&nO~O!k#nO~O![XO~O`%kO'q&vO'r%kO~O`%kO'q&yO'r%kO~O`%kO'q&{O'r%kO~O'p[X!V[Xr[X!j[X&T[X![[X%c[X!d[X~P(qO!_'YO!`'RO!a'RO'|!lO'}TO(QUO~Oo'PO!P'OO!X'SO([&}O!Z(`P!Z(nP~P@UOj']O!['ZO'{%dO~Od'bO!k%bO'{%dO~O|&OO!k%}O~Oo!nO!P!oO!{:dO#P!pO#Q!pO#S!pO#T!pO'|!lO'}TO(QUO([!mO(g!sO~O!_'hO!`'gO!a'gO#R!pO#W'iO#X'iO~PApO`%kOg%VO!d#uO!k%bO'r%kO(h'kO~O!o'oO#['mO~PCOOo!nO!P!oO'}TO(QUO([!mO(g!sO~O![XOo(eX!P(eX!_(eX!`(eX!a(eX!{(eX#P(eX#Q(eX#R(eX#S(eX#T(eX#W(eX#X(eX'|(eX'}(eX(Q(eX([(eX(g(eX~O!`'gO!a'gO'|!lO~PCnO'w'sO'x'sO'y'uO~O^!|O'}'wO(O!|O(P'wO~O^#PO(P'wO(Q'wO(R#PO~Ot#RO!R#SO(Y#SO(Z'{O~O!X'}O!V'PX!V'VX!Y'PX!Y'VX~P+}O!Y(PO!V(_X~OP$]OZ$dOn$QO|#yO}#zO!P#{O!Y(PO!h$SO!i#wO!k#xO!o$]O#j$OO#k$PO#l$PO#m$PO#n$RO#o$SO#p$SO#q$cO#r$SO#t$TO#v$VO#x$XO#y$YO(XVO(h$ZO(o#|O(p#}O~O!V(_X~PGbO!V(UO~O!V(kX!Y(kX!d(kX!j(kX(h(kX~O#[(kX#g#`X!Z(kX~PIhO#[(VO!V(mX!Y(mX~O!Y(WO!V(lX~O!V(ZO~O#[$eO~PIhO!Z([O~P`O|#yO}#zO!P#{O!i#wO!k#xO(XVOP!maZ!man!ma!Y!ma!h!ma!o!ma#j!ma#k!ma#l!ma#m!ma#n!ma#o!ma#p!ma#q!ma#r!ma#t!ma#v!ma#x!ma#y!ma(h!ma(o!ma(p!ma~O`!ma'r!ma'p!ma!V!ma!j!mar!ma![!ma%c!ma!d!ma~PKOO!j(]O~O!d#uO#[(^O(h'kO!Y(jX`(jX'r(jX~O!j(jX~PMnO!P%eO![%fO!{]O#e(cO#f(bO'{%dO~O!Y(dO!j(iX~O!j(fO~O!P%eO![%fO#f(bO'{%dO~OP(^XZ(^Xn(^X|(^X}(^X!P(^X!Y(^X!h(^X!i(^X!k(^X!o(^X#j(^X#k(^X#l(^X#m(^X#n(^X#o(^X#p(^X#q(^X#r(^X#t(^X#v(^X#x(^X#y(^X(X(^X(h(^X(o(^X(p(^X~O!d#uO!j(^X~P! [O|(gO}(hO!i#wO!k#xO!{!za!P!za~O!w!za%b!za![!za#e!za#f!za'{!za~P!#`O!w(lO~OPYOQYORfOc!jOd!iOlkOnYOokOpkOvkOxYOzYO!PWO!TkO!UkO![XO!fuO!kZO!nYO!oYO!pYO!rvO!t!gO!w!hO$T!kO'{!dO'}TO(QUO(XVO(g[O(tiO~Og%VOl%WOn$tOo$sOp$sOv%XOx%YOz;QO!P${O![$|O!f<`O!k$xO#f;WO$T%^O$o;SO$q;UO$t%_O'{(pO'}TO(QUO(X$uO(o$}O(p%PO~O#g(rO~Og%VOl%WOn$tOo$sOp$sOv%XOx%YOz%ZO!P${O![$|O!f%`O!k$xO#f%aO$T%^O$o%[O$q%]O$t%_O'{(pO'}TO(QUO(X$uO(o$}O(p%PO~Of(bP~P!(SO!X(vO!j(cP~P%[O([(xO(g[O~O!P(zO!k#xO([(xO(g[O~OP:cOQ:cORfOc<[Od!iOlkOn:cOokOpkOvkOx:cOz:cO!PWO!TkO!UkO![!eO!f:fO!kZO!n:cO!o:cO!p:cO!r:gO!t:jO!w!hO$T!kO'{)YO'}TO(QUO(XVO(g[O(t<YO~O})]O!k#xO~O!Y$aO`$ma'r$ma'p$ma!j$ma!V$ma![$ma%c$ma!d$ma~O#s)aO~P!&dO|)dO!d)cO![$ZX$W$ZX$Y$ZX$[$ZX$c$ZX~O!d)cO![(qX$W(qX$Y(qX$[(qX$c(qX~O|)dO~P!.OO|)dO![(qX$W(qX$Y(qX$[(qX$c(qX~O![)fO$W)jO$Y)eO$[)eO$c)kO~O!X)nO~P!*fO$Y$gO$[$fO$c)rO~Oj$uX|$uX!P$uX!i$uX(o$uX(p$uX~OfiXf$uXjiX!YiX#[iX~P!/tOo)tO~Ot)uO(Y)vO(Z)xO~Oj*RO|)zO!P){O(o$}O(p%PO~Of)yO~P!0}Of*SO~Og%VOl%WOn$tOo$sOp$sOv%XOx%YOz;QO!P${O![$|O!f<`O!k$xO#f;WO$T%^O$o;SO$q;UO$t%_O'}TO(QUO(X$uO(o$}O(p%PO~O!X*WO'{*TO!j(uP~P!1lO#g*YO~O!k*ZO~O!X*`O'{*]O!V(vP~P!1lOn*lO!P*dO!_*jO!`*cO!a*cO!k*ZO#W*kO%Y*fO'|!lO([!mO~O!Z*iO~P!3xO!i#wOj(WX|(WX!P(WX(o(WX(p(WX!Y(WX#[(WX~Of(WX#|(WX~P!4qOj*qO#[*pOf(VX!Y(VX~O!Y*rOf(UX~O'{&UOf(UP~O!k*yO~O'{(pO~Ol*}O!P%eO!X#hO![%fO!{]O#e#kO#f#hO'{%dO!j(iP~O!d#uO#g+OO~O!P%eO!X+QO!Y(WO![%fO'{%dO!V(lP~Oo'VO!P+SO!X+RO'}TO(QUO([(xO~O!Z(nP~P!7lO!Y+TO`(zX'r(zX~OP$]OZ$dOn$QO|#yO}#zO!P#{O!h$SO!i#wO!k#xO!o$]O#j$OO#k$PO#l$PO#m$PO#n$RO#o$SO#p$SO#q$cO#r$SO#t$TO#v$VO#x$XO#y$YO(XVO(h$ZO(o#|O(p#}O~O`!ea!Y!ea'r!ea'p!ea!V!ea!j!ear!ea![!ea%c!ea!d!ea~P!8dO|#yO}#zO!P#{O!i#wO!k#xO(XVOP!qaZ!qan!qa!Y!qa!h!qa!o!qa#j!qa#k!qa#l!qa#m!qa#n!qa#o!qa#p!qa#q!qa#r!qa#t!qa#v!qa#x!qa#y!qa(h!qa(o!qa(p!qa~O`!qa'r!qa'p!qa!V!qa!j!qar!qa![!qa%c!qa!d!qa~P!:}O|#yO}#zO!P#{O!i#wO!k#xO(XVOP!saZ!san!sa!Y!sa!h!sa!o!sa#j!sa#k!sa#l!sa#m!sa#n!sa#o!sa#p!sa#q!sa#r!sa#t!sa#v!sa#x!sa#y!sa(h!sa(o!sa(p!sa~O`!sa'r!sa'p!sa!V!sa!j!sar!sa![!sa%c!sa!d!sa~P!=hOg%VOj+^O!['ZO%c+]O~O!d+`O`(TX![(TX'r(TX!Y(TX~O`%kO![XO'r%kO~Og%VO!k%bO~Og%VO!k%bO'{%dO~O!d#uO#g(rO~Oa+kO%d+lO'{+hO'}TO(QUO!Z)OP~O!Y+mO_(}X~OZ+qO~O_+rO~O![%{O'{%dO'|!lO_(}P~Og%VO#[+wO~Og%VOj+zO![$|O~O![+|O~O|,OO![XO~O%h%rO~O!w,TO~Od,YO~Oa,ZO'{#mO'}TO(QUO!Z(|P~Od%yO~O%d!QO'{&UO~P<}OZ,`O_,_O~OPYOQYORfOczOdyOlkOnYOokOpkOvkOxYOzYO!PWO!TkO!UkO!fuO!kZO!nYO!oYO!pYO!rvO!wxO!{]O%b}O'}TO(QUO(XVO(g[O(tiO~O![!eO!t!gO$T!kO'{!dO~P!DkO_,_O`%kO'r%kO~OPYOQYORfOc!jOd!iOlkOnYOokOpkOvkOxYOzYO!PWO!TkO!UkO![!eO!fuO!kZO!nYO!oYO!pYO!rvO!w!hO$T!kO'{!dO'}TO(QUO(XVO(g[O(tiO~O`,eO!twO#s!OO%f!OO%g!OO%h!OO~P!GTO!k&jO~O&V,kO~O![,mO~O&h,oO&j,pOP&eaQ&eaR&eaX&ea`&eac&ead&eal&ean&eao&eap&eav&eax&eaz&ea!P&ea!T&ea!U&ea![&ea!f&ea!k&ea!n&ea!o&ea!p&ea!r&ea!t&ea!w&ea!{&ea#s&ea$T&ea%b&ea%d&ea%f&ea%g&ea%h&ea%k&ea%m&ea%p&ea%q&ea%s&ea&P&ea&V&ea&X&ea&Z&ea&]&ea&`&ea&f&ea&l&ea&n&ea&p&ea&r&ea&t&ea'p&ea'{&ea'}&ea(Q&ea(X&ea(g&ea(t&ea!Z&ea&^&eaa&ea&c&ea~O'{,uO~Og!bX!Y!OX!Y!bX!Z!OX!Z!bX!d!OX!d!bX!k!bX#[!OX~O!d,zO#[,yOg(aX!Y#dX!Y(aX!Z#dX!Z(aX!d(aX!k(aX~Og%VO!d,|O!k%bO!Y!^X!Z!^X~Oo!nO!P!oO'}TO(QUO([!mO~OP:cOQ:cORfOc<[Od!iOlkOn:cOokOpkOvkOx:cOz:cO!PWO!TkO!UkO![!eO!f:fO!kZO!n:cO!o:cO!p:cO!r:gO!t:jO!w!hO$T!kO'}TO(QUO(XVO(g[O(t<YO~O'{;]O~P#!ZO!Y-QO!Z(`X~O!Z-SO~O!d,zO#[,yO!Y#dX!Z#dX~O!Y-TO!Z(nX~O!Z-VO~O!`-WO!a-WO'|!lO~P# xO!Z-ZO~P'_Oj-^O!['ZO~O!V-cO~Oo!za!_!za!`!za!a!za#P!za#Q!za#R!za#S!za#T!za#W!za#X!za'|!za'}!za(Q!za([!za(g!za~P!#`O!o-hO#[-fO~PCOO!`-jO!a-jO'|!lO~PCnO`%kO#[-fO'r%kO~O`%kO!d#uO#[-fO'r%kO~O`%kO!d#uO!o-hO#[-fO'r%kO(h'kO~O'w'sO'x'sO'y-oO~Or-pO~O!V'Pa!Y'Pa~P!8dO!X-tO!V'PX!Y'PX~P%[O!Y(PO!V(_a~O!V(_a~PGbO!Y(WO!V(la~O!P%eO!X-xO![%fO'{%dO!V'VX!Y'VX~O#[-zO!Y(ja!j(ja`(ja'r(ja~O!d#uO~P#*aO!Y(dO!j(ia~O!P%eO![%fO#f.OO'{%dO~Ol.TO!P%eO!X.QO![%fO!{]O#e.SO#f.QO'{%dO!Y'YX!j'YX~O}.XO!k#xO~Og%VOj.[O!['ZO%c.ZO~O`#_i!Y#_i'r#_i'p#_i!V#_i!j#_ir#_i![#_i%c#_i!d#_i~P!8dOj<fO|)zO!P){O(o$}O(p%PO~O#g#Za`#Za#[#Za'r#Za!Y#Za!j#Za![#Za!V#Za~P#-]O#g(WXP(WXZ(WX`(WXn(WX}(WX!h(WX!k(WX!o(WX#j(WX#k(WX#l(WX#m(WX#n(WX#o(WX#p(WX#q(WX#r(WX#t(WX#v(WX#x(WX#y(WX'r(WX(X(WX(h(WX!j(WX!V(WX'p(WXr(WX![(WX%c(WX!d(WX~P!4qO!Y.iOf(bX~P!0}Of.kO~O!Y.lO!j(cX~P!8dO!j.oO~O!V.qO~OP$]O|#yO}#zO!P#{O!i#wO!k#xO!o$]O(XVOZ#ii`#iin#ii!Y#ii!h#ii#k#ii#l#ii#m#ii#n#ii#o#ii#p#ii#q#ii#r#ii#t#ii#v#ii#x#ii#y#ii'r#ii(h#ii(o#ii(p#ii'p#ii!V#ii!j#iir#ii![#ii%c#ii!d#ii~O#j#ii~P#1XO#j$OO~P#1XOP$]O|#yO}#zO!P#{O!i#wO!k#xO!o$]O#j$OO#k$PO#l$PO#m$PO(XVOZ#ii`#ii!Y#ii!h#ii#n#ii#o#ii#p#ii#q#ii#r#ii#t#ii#v#ii#x#ii#y#ii'r#ii(h#ii(o#ii(p#ii'p#ii!V#ii!j#iir#ii![#ii%c#ii!d#ii~On#ii~P#3yOn$QO~P#3yOP$]On$QO|#yO}#zO!P#{O!i#wO!k#xO!o$]O#j$OO#k$PO#l$PO#m$PO#n$RO(XVO`#ii!Y#ii#t#ii#v#ii#x#ii#y#ii'r#ii(h#ii(o#ii(p#ii'p#ii!V#ii!j#iir#ii![#ii%c#ii!d#ii~OZ#ii!h#ii#o#ii#p#ii#q#ii#r#ii~P#6kOZ$dO!h$SO#o$SO#p$SO#q$cO#r$SO~P#6kOP$]OZ$dOn$QO|#yO}#zO!P#{O!h$SO!i#wO!k#xO!o$]O#j$OO#k$PO#l$PO#m$PO#n$RO#o$SO#p$SO#q$cO#r$SO#t$TO(XVO(p#}O`#ii!Y#ii#x#ii#y#ii'r#ii(h#ii(o#ii'p#ii!V#ii!j#iir#ii![#ii%c#ii!d#ii~O#v$VO~P#9lO#v#ii~P#9lOP$]OZ$dOn$QO|#yO}#zO!P#{O!h$SO!i#wO!k#xO!o$]O#j$OO#k$PO#l$PO#m$PO#n$RO#o$SO#p$SO#q$cO#r$SO#t$TO(XVO`#ii!Y#ii#x#ii#y#ii'r#ii(h#ii'p#ii!V#ii!j#iir#ii![#ii%c#ii!d#ii~O#v#ii(o#ii(p#ii~P#<^O#v$VO(o#|O(p#}O~P#<^OP$]OZ$dOn$QO|#yO}#zO!P#{O!h$SO!i#wO!k#xO!o$]O#j$OO#k$PO#l$PO#m$PO#n$RO#o$SO#p$SO#q$cO#r$SO#t$TO#v$VO#x$XO(XVO(o#|O(p#}O~O`#ii!Y#ii#y#ii'r#ii(h#ii'p#ii!V#ii!j#iir#ii![#ii%c#ii!d#ii~P#?UOP[XZ[Xn[X|[X}[X!P[X!h[X!i[X!k[X!o[X#[[X#geX#j[X#k[X#l[X#m[X#n[X#o[X#p[X#q[X#r[X#t[X#v[X#x[X#y[X$O[X(X[X(h[X(o[X(p[X!Y[X!Z[X~O#|[X~P#AoOP$]OZ:zOn:nO|#yO}#zO!P#{O!h:pO!i#wO!k#xO!o$]O#j:lO#k:mO#l:mO#m:mO#n:oO#o:pO#p:pO#q:yO#r:pO#t:qO#v:sO#x:uO#y:vO(XVO(h$ZO(o#|O(p#}O~O#|.sO~P#C|O#[:{O$O:{O#|(^X!Z(^X~P! [O`']a!Y']a'r']a'p']a!j']a!V']ar']a![']a%c']a!d']a~P!8dOP#iiZ#ii`#iin#ii}#ii!Y#ii!h#ii!i#ii!k#ii!o#ii#j#ii#k#ii#l#ii#m#ii#n#ii#o#ii#p#ii#q#ii#r#ii#t#ii#v#ii#x#ii#y#ii'r#ii(X#ii(h#ii'p#ii!V#ii!j#iir#ii![#ii%c#ii!d#ii~P#-]O`#}i!Y#}i'r#}i'p#}i!V#}i!j#}ir#}i![#}i%c#}i!d#}i~P!8dO$Y.xO$[.xO~O$Y.yO$[.yO~O!d)cO#[.zO![$`X$W$`X$Y$`X$[$`X$c$`X~O!X.{O~O![)fO$W.}O$Y)eO$[)eO$c/OO~O!Y:wO!Z(]X~P#C|O!Z/PO~O!d)cO$c(qX~O$c/RO~Ot)uO(Y)vO(Z/UO~O!V/YO~P!&dO(o$}Oj%Za|%Za!P%Za(p%Za!Y%Za#[%Za~Of%Za#|%Za~P#L^O(p%POj%]a|%]a!P%]a(o%]a!Y%]a#[%]a~Of%]a#|%]a~P#MPO!YeX!deX!jeX!j$uX(heX~P!/tO!j/bO~P#-]O!Y/cO!d#uO(h'kO!j(uX~O!j/hO~O!X*WO'{%dO!j(uP~O#g/jO~O!V$uX!Y$uX!d$|X~P!/tO!Y/kO!V(vX~P#-]O!d/mO~O!V/oO~Og%VOn/sO!d#uO!k%bO(h'kO~O'{/uO~O!d+`O~O`%kO!Y/yO'r%kO~O!Z/{O~P!3xO!`/|O!a/|O'|!lO([!mO~O!P0OO([!mO~O#W0PO~Of%Za!Y%Za#[%Za#|%Za~P!0}Of%]a!Y%]a#[%]a#|%]a~P!0}O'{&UOf'fX!Y'fX~O!Y*rOf(Ua~Of0YO~O|0ZO}0ZO!P0[Ojya(oya(pya!Yya#[ya~Ofya#|ya~P$$jO|)zO!P){Oj$na(o$na(p$na!Y$na#[$na~Of$na#|$na~P$%`O|)zO!P){Oj$pa(o$pa(p$pa!Y$pa#[$pa~Of$pa#|$pa~P$&RO#g0^O~Of%Oa!Y%Oa#[%Oa#|%Oa~P!0}O!d#uO~O#g0aO~O!Y+TO`(za'r(za~O|#yO}#zO!P#{O!i#wO!k#xO(XVOP!qiZ!qin!qi!Y!qi!h!qi!o!qi#j!qi#k!qi#l!qi#m!qi#n!qi#o!qi#p!qi#q!qi#r!qi#t!qi#v!qi#x!qi#y!qi(h!qi(o!qi(p!qi~O`!qi'r!qi'p!qi!V!qi!j!qir!qi![!qi%c!qi!d!qi~P$'pOg%VOn$tOo$sOp$sOv%XOx%YOz;QO!P${O![$|O!f<`O!k$xO#f;WO$T%^O$o;SO$q;UO$t%_O'}TO(QUO(X$uO(o$}O(p%PO~Ol0kO'{0jO~P$*ZO!d+`O`(Ta![(Ta'r(Ta!Y(Ta~O#g0qO~OZ[X!YeX!ZeX~O!Y0rO!Z)OX~O!Z0tO~OZ0uO~Oa0wO'{+hO'}TO(QUO~O![%{O'{%dO_'nX!Y'nX~O!Y+mO_(}a~O!j0zO~P!8dOZ0}O~O_1OO~O#[1RO~Oj1UO![$|O~O([(xO!Z({P~Og%VOj1_O![1[O%c1^O~OZ1iO!Y1gO!Z(|X~O!Z1jO~O_1lO`%kO'r%kO~O'{#mO'}TO(QUO~O#[$eO$O$eOP(^XZ(^Xn(^X|(^X}(^X!P(^X!Y(^X!h(^X!k(^X!o(^X#j(^X#k(^X#l(^X#m(^X#n(^X#o(^X#p(^X#q(^X#t(^X#v(^X#x(^X#y(^X(X(^X(h(^X(o(^X(p(^X~O#r1oO&T1pO`(^X!i(^X~P$/qO#[$eO#r1oO&T1pO~O`1rO~P%[O`1tO~O&^1wOP&[iQ&[iR&[iX&[i`&[ic&[id&[il&[in&[io&[ip&[iv&[ix&[iz&[i!P&[i!T&[i!U&[i![&[i!f&[i!k&[i!n&[i!o&[i!p&[i!r&[i!t&[i!w&[i!{&[i#s&[i$T&[i%b&[i%d&[i%f&[i%g&[i%h&[i%k&[i%m&[i%p&[i%q&[i%s&[i&P&[i&V&[i&X&[i&Z&[i&]&[i&`&[i&f&[i&l&[i&n&[i&p&[i&r&[i&t&[i'p&[i'{&[i'}&[i(Q&[i(X&[i(g&[i(t&[i!Z&[ia&[i&c&[i~Oa1}O!Z1{O&c1|O~P`O![XO!k2PO~O&j,pOP&eiQ&eiR&eiX&ei`&eic&eid&eil&ein&eio&eip&eiv&eix&eiz&ei!P&ei!T&ei!U&ei![&ei!f&ei!k&ei!n&ei!o&ei!p&ei!r&ei!t&ei!w&ei!{&ei#s&ei$T&ei%b&ei%d&ei%f&ei%g&ei%h&ei%k&ei%m&ei%p&ei%q&ei%s&ei&P&ei&V&ei&X&ei&Z&ei&]&ei&`&ei&f&ei&l&ei&n&ei&p&ei&r&ei&t&ei'p&ei'{&ei'}&ei(Q&ei(X&ei(g&ei(t&ei!Z&ei&^&eia&ei&c&ei~O!V2VO~O!Y!^a!Z!^a~P#C|Oo!nO!P!oO!X2]O([!mO!Y'QX!Z'QX~P@UO!Y-QO!Z(`a~O!Y'WX!Z'WX~P!7lO!Y-TO!Z(na~O!Z2dO~P'_O`%kO#[2mO'r%kO~O`%kO!d#uO#[2mO'r%kO~O`%kO!d#uO!o2qO#[2mO'r%kO(h'kO~O`%kO'r%kO~P!8dO!Y$aOr$ma~O!V'Pi!Y'Pi~P!8dO!Y(PO!V(_i~O!Y(WO!V(li~O!V(mi!Y(mi~P!8dO!Y(ji!j(ji`(ji'r(ji~P!8dO#[2sO!Y(ji!j(ji`(ji'r(ji~O!Y(dO!j(ii~O!P%eO![%fO!{]O#e2xO#f2wO'{%dO~O!P%eO![%fO#f2wO'{%dO~Oj3PO!['ZO%c3OO~Og%VOj3PO!['ZO%c3OO~O#g%ZaP%ZaZ%Za`%Zan%Za}%Za!h%Za!i%Za!k%Za!o%Za#j%Za#k%Za#l%Za#m%Za#n%Za#o%Za#p%Za#q%Za#r%Za#t%Za#v%Za#x%Za#y%Za'r%Za(X%Za(h%Za!j%Za!V%Za'p%Zar%Za![%Za%c%Za!d%Za~P#L^O#g%]aP%]aZ%]a`%]an%]a}%]a!h%]a!i%]a!k%]a!o%]a#j%]a#k%]a#l%]a#m%]a#n%]a#o%]a#p%]a#q%]a#r%]a#t%]a#v%]a#x%]a#y%]a'r%]a(X%]a(h%]a!j%]a!V%]a'p%]ar%]a![%]a%c%]a!d%]a~P#MPO#g%ZaP%ZaZ%Za`%Zan%Za}%Za!Y%Za!h%Za!i%Za!k%Za!o%Za#j%Za#k%Za#l%Za#m%Za#n%Za#o%Za#p%Za#q%Za#r%Za#t%Za#v%Za#x%Za#y%Za'r%Za(X%Za(h%Za!j%Za!V%Za'p%Za#[%Zar%Za![%Za%c%Za!d%Za~P#-]O#g%]aP%]aZ%]a`%]an%]a}%]a!Y%]a!h%]a!i%]a!k%]a!o%]a#j%]a#k%]a#l%]a#m%]a#n%]a#o%]a#p%]a#q%]a#r%]a#t%]a#v%]a#x%]a#y%]a'r%]a(X%]a(h%]a!j%]a!V%]a'p%]a#[%]ar%]a![%]a%c%]a!d%]a~P#-]O#gyaPyaZya`yanya!hya!iya!kya!oya#jya#kya#lya#mya#nya#oya#pya#qya#rya#tya#vya#xya#yya'rya(Xya(hya!jya!Vya'pyarya![ya%cya!dya~P$$jO#g$naP$naZ$na`$nan$na}$na!h$na!i$na!k$na!o$na#j$na#k$na#l$na#m$na#n$na#o$na#p$na#q$na#r$na#t$na#v$na#x$na#y$na'r$na(X$na(h$na!j$na!V$na'p$nar$na![$na%c$na!d$na~P$%`O#g$paP$paZ$pa`$pan$pa}$pa!h$pa!i$pa!k$pa!o$pa#j$pa#k$pa#l$pa#m$pa#n$pa#o$pa#p$pa#q$pa#r$pa#t$pa#v$pa#x$pa#y$pa'r$pa(X$pa(h$pa!j$pa!V$pa'p$par$pa![$pa%c$pa!d$pa~P$&RO#g%OaP%OaZ%Oa`%Oan%Oa}%Oa!Y%Oa!h%Oa!i%Oa!k%Oa!o%Oa#j%Oa#k%Oa#l%Oa#m%Oa#n%Oa#o%Oa#p%Oa#q%Oa#r%Oa#t%Oa#v%Oa#x%Oa#y%Oa'r%Oa(X%Oa(h%Oa!j%Oa!V%Oa'p%Oa#[%Oar%Oa![%Oa%c%Oa!d%Oa~P#-]O`#_q!Y#_q'r#_q'p#_q!V#_q!j#_qr#_q![#_q%c#_q!d#_q~P!8dOf'RX!Y'RX~P!(SO!Y.iOf(ba~O!X3ZO!Y'SX!j'SX~P%[O!Y.lO!j(ca~O!Y.lO!j(ca~P!8dO!V3^O~O#|!ma!Z!ma~PKOO#|!ea!Y!ea!Z!ea~P#C|O#|!qa!Z!qa~P!:}O#|!sa!Z!sa~P!=hORfO![3pO$a3qO~O!Z3uO~Or3vO~P#-]O`$jq!Y$jq'r$jq'p$jq!V$jq!j$jqr$jq![$jq%c$jq!d$jq~P!8dO!V3wO~P#-]O|)zO!P){O(p%POj'ba(o'ba!Y'ba#['ba~Of'ba#|'ba~P%)eO|)zO!P){Oj'da(o'da(p'da!Y'da#['da~Of'da#|'da~P%*WO(h$ZO~P#-]O!X3zO'{%dO!Y'^X!j'^X~O!Y/cO!j(ua~O!Y/cO!d#uO!j(ua~O!Y/cO!d#uO(h'kO!j(ua~Of$wi!Y$wi#[$wi#|$wi~P!0}O!X4SO'{*]O!V'`X!Y'`X~P!1lO!Y/kO!V(va~O!Y/kO!V(va~P#-]O!d#uO#r4[O~On4_O!d#uO(h'kO~O(o$}Oj%Zi|%Zi!P%Zi(p%Zi!Y%Zi#[%Zi~Of%Zi#|%Zi~P%-jO(p%POj%]i|%]i!P%]i(o%]i!Y%]i#[%]i~Of%]i#|%]i~P%.]Of(Vi!Y(Vi~P!0}O#[4fOf(Vi!Y(Vi~P!0}O!j4iO~O`$kq!Y$kq'r$kq'p$kq!V$kq!j$kqr$kq![$kq%c$kq!d$kq~P!8dO!V4mO~O!Y4nO![(wX~P#-]O!i#wO~P4XO`$uX![$uX%W[X'r$uX!Y$uX~P!/tO%W4pO`kXjkX|kX!PkX![kX'rkX(okX(pkX!YkX~O%W4pO~Oa4vO%d4wO'{+hO'}TO(QUO!Y'mX!Z'mX~O!Y0rO!Z)Oa~OZ4{O~O_4|O~O`%kO'r%kO~P#-]O![$|O~P#-]O!Y5UO#[5WO!Z({X~O!Z5XO~Oo!nO!P5YO!_!xO!`!uO!a!uO!{:dO#P!pO#Q!pO#R!pO#S!pO#T!pO#W5_O#X!yO'|!lO'}TO(QUO([!mO(g!sO~O!Z5^O~P%3nOj5dO![1[O%c5cO~Og%VOj5dO![1[O%c5cO~Oa5kO'{#mO'}TO(QUO!Y'lX!Z'lX~O!Y1gO!Z(|a~O'}TO(QUO([5mO~O_5qO~O#r5tO&T5uO~PMnO!j5vO~P%[O`5xO~O`5xO~P%[Oa1}O!Z5}O&c1|O~P`O!d6PO~O!d6ROg(ai!Y(ai!Z(ai!d(ai!k(ai~O!Y#di!Z#di~P#C|O#[6SO!Y#di!Z#di~O!Y!^i!Z!^i~P#C|O`%kO#[6]O'r%kO~O`%kO!d#uO#[6]O'r%kO~O!Y(jq!j(jq`(jq'r(jq~P!8dO!Y(dO!j(iq~O!P%eO![%fO#f6dO'{%dO~O!['ZO%c6gO~Oj6jO!['ZO%c6gO~O#g'baP'baZ'ba`'ban'ba}'ba!h'ba!i'ba!k'ba!o'ba#j'ba#k'ba#l'ba#m'ba#n'ba#o'ba#p'ba#q'ba#r'ba#t'ba#v'ba#x'ba#y'ba'r'ba(X'ba(h'ba!j'ba!V'ba'p'bar'ba!['ba%c'ba!d'ba~P%)eO#g'daP'daZ'da`'dan'da}'da!h'da!i'da!k'da!o'da#j'da#k'da#l'da#m'da#n'da#o'da#p'da#q'da#r'da#t'da#v'da#x'da#y'da'r'da(X'da(h'da!j'da!V'da'p'dar'da!['da%c'da!d'da~P%*WO#g$wiP$wiZ$wi`$win$wi}$wi!Y$wi!h$wi!i$wi!k$wi!o$wi#j$wi#k$wi#l$wi#m$wi#n$wi#o$wi#p$wi#q$wi#r$wi#t$wi#v$wi#x$wi#y$wi'r$wi(X$wi(h$wi!j$wi!V$wi'p$wi#[$wir$wi![$wi%c$wi!d$wi~P#-]O#g%ZiP%ZiZ%Zi`%Zin%Zi}%Zi!h%Zi!i%Zi!k%Zi!o%Zi#j%Zi#k%Zi#l%Zi#m%Zi#n%Zi#o%Zi#p%Zi#q%Zi#r%Zi#t%Zi#v%Zi#x%Zi#y%Zi'r%Zi(X%Zi(h%Zi!j%Zi!V%Zi'p%Zir%Zi![%Zi%c%Zi!d%Zi~P%-jO#g%]iP%]iZ%]i`%]in%]i}%]i!h%]i!i%]i!k%]i!o%]i#j%]i#k%]i#l%]i#m%]i#n%]i#o%]i#p%]i#q%]i#r%]i#t%]i#v%]i#x%]i#y%]i'r%]i(X%]i(h%]i!j%]i!V%]i'p%]ir%]i![%]i%c%]i!d%]i~P%.]Of'Ra!Y'Ra~P!0}O!Y'Sa!j'Sa~P!8dO!Y.lO!j(ci~O#|#_i!Y#_i!Z#_i~P#C|OP$]O|#yO}#zO!P#{O!i#wO!k#xO!o$]O(XVOZ#iin#ii!h#ii#k#ii#l#ii#m#ii#n#ii#o#ii#p#ii#q#ii#r#ii#t#ii#v#ii#x#ii#y#ii#|#ii(h#ii(o#ii(p#ii!Y#ii!Z#ii~O#j#ii~P%FnO#j:lO~P%FnOP$]O|#yO}#zO!P#{O!i#wO!k#xO!o$]O#j:lO#k:mO#l:mO#m:mO(XVOZ#ii!h#ii#n#ii#o#ii#p#ii#q#ii#r#ii#t#ii#v#ii#x#ii#y#ii#|#ii(h#ii(o#ii(p#ii!Y#ii!Z#ii~On#ii~P%HyOn:nO~P%HyOP$]On:nO|#yO}#zO!P#{O!i#wO!k#xO!o$]O#j:lO#k:mO#l:mO#m:mO#n:oO(XVO#t#ii#v#ii#x#ii#y#ii#|#ii(h#ii(o#ii(p#ii!Y#ii!Z#ii~OZ#ii!h#ii#o#ii#p#ii#q#ii#r#ii~P%KUOZ:zO!h:pO#o:pO#p:pO#q:yO#r:pO~P%KUOP$]OZ:zOn:nO|#yO}#zO!P#{O!h:pO!i#wO!k#xO!o$]O#j:lO#k:mO#l:mO#m:mO#n:oO#o:pO#p:pO#q:yO#r:pO#t:qO(XVO(p#}O#x#ii#y#ii#|#ii(h#ii(o#ii!Y#ii!Z#ii~O#v:sO~P%MpO#v#ii~P%MpOP$]OZ:zOn:nO|#yO}#zO!P#{O!h:pO!i#wO!k#xO!o$]O#j:lO#k:mO#l:mO#m:mO#n:oO#o:pO#p:pO#q:yO#r:pO#t:qO(XVO#x#ii#y#ii#|#ii(h#ii!Y#ii!Z#ii~O#v#ii(o#ii(p#ii~P& {O#v:sO(o#|O(p#}O~P& {OP$]OZ:zOn:nO|#yO}#zO!P#{O!h:pO!i#wO!k#xO!o$]O#j:lO#k:mO#l:mO#m:mO#n:oO#o:pO#p:pO#q:yO#r:pO#t:qO#v:sO#x:uO(XVO(o#|O(p#}O~O#y#ii#|#ii(h#ii!Y#ii!Z#ii~P&$^O`#zy!Y#zy'r#zy'p#zy!V#zy!j#zyr#zy![#zy%c#zy!d#zy~P!8dOj<gO|)zO!P){O(o$}O(p%PO~OP#iiZ#iin#ii}#ii!h#ii!i#ii!k#ii!o#ii#j#ii#k#ii#l#ii#m#ii#n#ii#o#ii#p#ii#q#ii#r#ii#t#ii#v#ii#x#ii#y#ii#|#ii(X#ii(h#ii!Y#ii!Z#ii~P&'UO!i#wOP(WXZ(WXj(WXn(WX|(WX}(WX!P(WX!h(WX!k(WX!o(WX#j(WX#k(WX#l(WX#m(WX#n(WX#o(WX#p(WX#q(WX#r(WX#t(WX#v(WX#x(WX#y(WX#|(WX(X(WX(h(WX(o(WX(p(WX!Y(WX!Z(WX~O#|#}i!Y#}i!Z#}i~P#C|O#|!qi!Z!qi~P$'pO!Z6|O~O!Y']a!Z']a~P#C|O!d#uO(h'kO!Y'^a!j'^a~O!Y/cO!j(ui~O!Y/cO!d#uO!j(ui~Of$wq!Y$wq#[$wq#|$wq~P!0}O!V'`a!Y'`a~P#-]O!d7TO~O!Y/kO!V(vi~P#-]O!Y/kO!V(vi~O!V7XO~O!d#uO#r7^O~On7_O!d#uO(h'kO~O|)zO!P){O(p%POj'ca(o'ca!Y'ca#['ca~Of'ca#|'ca~P&.fO|)zO!P){Oj'ea(o'ea(p'ea!Y'ea#['ea~Of'ea#|'ea~P&/XO!V7aO~Of$yq!Y$yq#[$yq#|$yq~P!0}O`$ky!Y$ky'r$ky'p$ky!V$ky!j$kyr$ky![$ky%c$ky!d$ky~P!8dO!d6RO~O!Y4nO![(wa~O`#_y!Y#_y'r#_y'p#_y!V#_y!j#_yr#_y![#_y%c#_y!d#_y~P!8dOZ7fO~Oa7hO'{+hO'}TO(QUO~O!Y0rO!Z)Oi~O_7lO~O([(xO!Y'iX!Z'iX~O!Y5UO!Z({a~OlkO'{7sO~P.iO!Z7vO~P%3nOo!nO!P7wO'}TO(QUO([!mO(g!sO~O![1[O~O![1[O%c7yO~Oj7|O![1[O%c7yO~OZ8RO!Y'la!Z'la~O!Y1gO!Z(|i~O!j8VO~O!j8WO~O!j8ZO~O!j8ZO~P%[O`8]O~O!d8^O~O!j8_O~O!Y(mi!Z(mi~P#C|O`%kO#[8gO'r%kO~O!Y(jy!j(jy`(jy'r(jy~P!8dO!Y(dO!j(iy~O!['ZO%c8jO~O#g$wqP$wqZ$wq`$wqn$wq}$wq!Y$wq!h$wq!i$wq!k$wq!o$wq#j$wq#k$wq#l$wq#m$wq#n$wq#o$wq#p$wq#q$wq#r$wq#t$wq#v$wq#x$wq#y$wq'r$wq(X$wq(h$wq!j$wq!V$wq'p$wq#[$wqr$wq![$wq%c$wq!d$wq~P#-]O#g'caP'caZ'ca`'can'ca}'ca!h'ca!i'ca!k'ca!o'ca#j'ca#k'ca#l'ca#m'ca#n'ca#o'ca#p'ca#q'ca#r'ca#t'ca#v'ca#x'ca#y'ca'r'ca(X'ca(h'ca!j'ca!V'ca'p'car'ca!['ca%c'ca!d'ca~P&.fO#g'eaP'eaZ'ea`'ean'ea}'ea!h'ea!i'ea!k'ea!o'ea#j'ea#k'ea#l'ea#m'ea#n'ea#o'ea#p'ea#q'ea#r'ea#t'ea#v'ea#x'ea#y'ea'r'ea(X'ea(h'ea!j'ea!V'ea'p'ear'ea!['ea%c'ea!d'ea~P&/XO#g$yqP$yqZ$yq`$yqn$yq}$yq!Y$yq!h$yq!i$yq!k$yq!o$yq#j$yq#k$yq#l$yq#m$yq#n$yq#o$yq#p$yq#q$yq#r$yq#t$yq#v$yq#x$yq#y$yq'r$yq(X$yq(h$yq!j$yq!V$yq'p$yq#[$yqr$yq![$yq%c$yq!d$yq~P#-]O!Y'Si!j'Si~P!8dO#|#_q!Y#_q!Z#_q~P#C|O(o$}OP%ZaZ%Zan%Za}%Za!h%Za!i%Za!k%Za!o%Za#j%Za#k%Za#l%Za#m%Za#n%Za#o%Za#p%Za#q%Za#r%Za#t%Za#v%Za#x%Za#y%Za#|%Za(X%Za(h%Za!Y%Za!Z%Za~Oj%Za|%Za!P%Za(p%Za~P&@nO(p%POP%]aZ%]an%]a}%]a!h%]a!i%]a!k%]a!o%]a#j%]a#k%]a#l%]a#m%]a#n%]a#o%]a#p%]a#q%]a#r%]a#t%]a#v%]a#x%]a#y%]a#|%]a(X%]a(h%]a!Y%]a!Z%]a~Oj%]a|%]a!P%]a(o%]a~P&BuOj<gO|)zO!P){O(p%PO~P&@nOj<gO|)zO!P){O(o$}O~P&BuO|0ZO}0ZO!P0[OPyaZyajyanya!hya!iya!kya!oya#jya#kya#lya#mya#nya#oya#pya#qya#rya#tya#vya#xya#yya#|ya(Xya(hya(oya(pya!Yya!Zya~O|)zO!P){OP$naZ$naj$nan$na}$na!h$na!i$na!k$na!o$na#j$na#k$na#l$na#m$na#n$na#o$na#p$na#q$na#r$na#t$na#v$na#x$na#y$na#|$na(X$na(h$na(o$na(p$na!Y$na!Z$na~O|)zO!P){OP$paZ$paj$pan$pa}$pa!h$pa!i$pa!k$pa!o$pa#j$pa#k$pa#l$pa#m$pa#n$pa#o$pa#p$pa#q$pa#r$pa#t$pa#v$pa#x$pa#y$pa#|$pa(X$pa(h$pa(o$pa(p$pa!Y$pa!Z$pa~OP%OaZ%Oan%Oa}%Oa!h%Oa!i%Oa!k%Oa!o%Oa#j%Oa#k%Oa#l%Oa#m%Oa#n%Oa#o%Oa#p%Oa#q%Oa#r%Oa#t%Oa#v%Oa#x%Oa#y%Oa#|%Oa(X%Oa(h%Oa!Y%Oa!Z%Oa~P&'UO#|$jq!Y$jq!Z$jq~P#C|O#|$kq!Y$kq!Z$kq~P#C|O!Z8vO~O#|8wO~P!0}O!d#uO!Y'^i!j'^i~O!d#uO(h'kO!Y'^i!j'^i~O!Y/cO!j(uq~O!V'`i!Y'`i~P#-]O!Y/kO!V(vq~O!V8}O~P#-]O!V8}O~Of(Vy!Y(Vy~P!0}O!Y'ga!['ga~P#-]O`%Vq![%Vq'r%Vq!Y%Vq~P#-]OZ9SO~O!Y0rO!Z)Oq~O#[9WO!Y'ia!Z'ia~O!Y5UO!Z({i~P#C|OP[XZ[Xn[X|[X}[X!P[X!V[X!Y[X!h[X!i[X!k[X!o[X#[[X#geX#j[X#k[X#l[X#m[X#n[X#o[X#p[X#q[X#r[X#t[X#v[X#x[X#y[X$O[X(X[X(h[X(o[X(p[X~O!d%TX#r%TX~P'#`O![1[O%c9[O~O'}TO(QUO([9aO~O!Y1gO!Z(|q~O!j9dO~O!j9eO~O!j9fO~O!j9fO~P%[O#[9iO!Y#dy!Z#dy~O!Y#dy!Z#dy~P#C|O!['ZO%c9nO~O#|#zy!Y#zy!Z#zy~P#C|OP$wiZ$win$wi}$wi!h$wi!i$wi!k$wi!o$wi#j$wi#k$wi#l$wi#m$wi#n$wi#o$wi#p$wi#q$wi#r$wi#t$wi#v$wi#x$wi#y$wi#|$wi(X$wi(h$wi!Y$wi!Z$wi~P&'UO|)zO!P){O(p%POP'baZ'baj'ban'ba}'ba!h'ba!i'ba!k'ba!o'ba#j'ba#k'ba#l'ba#m'ba#n'ba#o'ba#p'ba#q'ba#r'ba#t'ba#v'ba#x'ba#y'ba#|'ba(X'ba(h'ba(o'ba!Y'ba!Z'ba~O|)zO!P){OP'daZ'daj'dan'da}'da!h'da!i'da!k'da!o'da#j'da#k'da#l'da#m'da#n'da#o'da#p'da#q'da#r'da#t'da#v'da#x'da#y'da#|'da(X'da(h'da(o'da(p'da!Y'da!Z'da~O(o$}OP%ZiZ%Zij%Zin%Zi|%Zi}%Zi!P%Zi!h%Zi!i%Zi!k%Zi!o%Zi#j%Zi#k%Zi#l%Zi#m%Zi#n%Zi#o%Zi#p%Zi#q%Zi#r%Zi#t%Zi#v%Zi#x%Zi#y%Zi#|%Zi(X%Zi(h%Zi(p%Zi!Y%Zi!Z%Zi~O(p%POP%]iZ%]ij%]in%]i|%]i}%]i!P%]i!h%]i!i%]i!k%]i!o%]i#j%]i#k%]i#l%]i#m%]i#n%]i#o%]i#p%]i#q%]i#r%]i#t%]i#v%]i#x%]i#y%]i#|%]i(X%]i(h%]i(o%]i!Y%]i!Z%]i~O#|$ky!Y$ky!Z$ky~P#C|O#|#_y!Y#_y!Z#_y~P#C|O!d#uO!Y'^q!j'^q~O!Y/cO!j(uy~O!V'`q!Y'`q~P#-]O!V9wO~P#-]O!Y0rO!Z)Oy~O!Y5UO!Z({q~O![1[O%c:OO~O!j:RO~O!['ZO%c:WO~OP$wqZ$wqn$wq}$wq!h$wq!i$wq!k$wq!o$wq#j$wq#k$wq#l$wq#m$wq#n$wq#o$wq#p$wq#q$wq#r$wq#t$wq#v$wq#x$wq#y$wq#|$wq(X$wq(h$wq!Y$wq!Z$wq~P&'UO|)zO!P){O(p%POP'caZ'caj'can'ca}'ca!h'ca!i'ca!k'ca!o'ca#j'ca#k'ca#l'ca#m'ca#n'ca#o'ca#p'ca#q'ca#r'ca#t'ca#v'ca#x'ca#y'ca#|'ca(X'ca(h'ca(o'ca!Y'ca!Z'ca~O|)zO!P){OP'eaZ'eaj'ean'ea}'ea!h'ea!i'ea!k'ea!o'ea#j'ea#k'ea#l'ea#m'ea#n'ea#o'ea#p'ea#q'ea#r'ea#t'ea#v'ea#x'ea#y'ea#|'ea(X'ea(h'ea(o'ea(p'ea!Y'ea!Z'ea~OP$yqZ$yqn$yq}$yq!h$yq!i$yq!k$yq!o$yq#j$yq#k$yq#l$yq#m$yq#n$yq#o$yq#p$yq#q$yq#r$yq#t$yq#v$yq#x$yq#y$yq#|$yq(X$yq(h$yq!Y$yq!Z$yq~P&'UOf%_!Z!Y%_!Z#[%_!Z#|%_!Z~P!0}O!Y'iq!Z'iq~P#C|O!Y#d!Z!Z#d!Z~P#C|O#g%_!ZP%_!ZZ%_!Z`%_!Zn%_!Z}%_!Z!Y%_!Z!h%_!Z!i%_!Z!k%_!Z!o%_!Z#j%_!Z#k%_!Z#l%_!Z#m%_!Z#n%_!Z#o%_!Z#p%_!Z#q%_!Z#r%_!Z#t%_!Z#v%_!Z#x%_!Z#y%_!Z'r%_!Z(X%_!Z(h%_!Z!j%_!Z!V%_!Z'p%_!Z#[%_!Zr%_!Z![%_!Z%c%_!Z!d%_!Z~P#-]OP%_!ZZ%_!Zn%_!Z}%_!Z!h%_!Z!i%_!Z!k%_!Z!o%_!Z#j%_!Z#k%_!Z#l%_!Z#m%_!Z#n%_!Z#o%_!Z#p%_!Z#q%_!Z#r%_!Z#t%_!Z#v%_!Z#x%_!Z#y%_!Z#|%_!Z(X%_!Z(h%_!Z!Y%_!Z!Z%_!Z~P&'UOr(]X~P1qO'|!lO~P!*fO!VeX!YeX#[eX~P'#`OP[XZ[Xn[X|[X}[X!P[X!Y[X!YeX!h[X!i[X!k[X!o[X#[[X#[eX#geX#j[X#k[X#l[X#m[X#n[X#o[X#p[X#q[X#r[X#t[X#v[X#x[X#y[X$O[X(X[X(h[X(o[X(p[X~O!deX!j[X!jeX(heX~P'ASOP:cOQ:cORfOc<[Od!iOlkOn:cOokOpkOvkOx:cOz:cO!PWO!TkO!UkO![XO!f:fO!kZO!n:cO!o:cO!p:cO!r:gO!t:jO!w!hO$T!kO'{)YO'}TO(QUO(XVO(g[O(t<YO~O!Y:wO!Z$ma~Og%VOl%WOn$tOo$sOp$sOv%XOx%YOz;RO!P${O![$|O!f<aO!k$xO#f;XO$T%^O$o;TO$q;VO$t%_O'{(pO'}TO(QUO(X$uO(o$}O(p%PO~O#s)aO~P'ExO!Z[X!ZeX~P'ASO#g:kO~O!d#uO#g:kO~O#[:{O~O#r:pO~O#[;ZO!Y(mX!Z(mX~O#[:{O!Y(kX!Z(kX~O#g;[O~Of;^O~P!0}O#g;cO~O#g;dO~O!d#uO#g;eO~O!d#uO#g;[O~O#|;fO~P#C|O#g;gO~O#g;hO~O#g;mO~O#g;nO~O#g;oO~O#g;pO~O#|;qO~P!0}O#|;rO~P!0}O!i#P#Q#S#T#W#e#f#q(t$o$q$t%W%b%c%d%k%m%p%q%s%u~'vS#k!U't'|#lo#j#mn|'u$Y'u'{$[([~\",\n goto: \"$2p)SPPPPP)TPP)WP)iP*x.|PPPP5pPP6WPP<S?gP?zP?zPPP?zPAxP?zP?zP?zPA|PPBRPBlPGdPPPGhPPPPGhJiPPPJoKjPGhPMxPPPP!!WGhPPPGhPGhP!$fGhP!'z!(|!)VP!)y!)}!)yPPPPP!-Y!(|PP!-v!.pP!1dGhGh!1i!4s!9Y!9Y!=OPPP!=VGhPPPPPPPPPPP!@dP!AqPPGh!CSPGhPGhGhGhGhPGh!DfP!GnP!JrP!Jv!KQ!KU!KUP!GkP!KY!KYP!N^P!NbGhGh!Nh##k?zP?zP?z?zP#$v?z?z#'O?z#)k?z#+m?z?z#,[#.f#.f#.j#.r#.f#.zP#.fP?z#/d?z#3R?z?z5pPPP#6vPPP#7a#7aP#7aP#7w#7aPP#7}P#7tP#7t#8b#7t#8|#9S5m)W#9V)WP#9^#9^#9^P)WP)WP)WP)WPP)WP#9d#9gP#9g)WP#9kP#9nP)WP)WP)WP)WP)WP)W)WPP#9t#9z#:V#:]#:c#:i#:o#:}#;T#;Z#;e#;k#;u#<U#<[#<|#=`#=f#=l#=z#>a#@O#@^#@d#Ax#BW#Cr#DQ#DW#D^#Dd#Dn#Dt#Dz#EU#Eh#EnPPPPPPPPPP#EtPPPPPPP#Fi#Ip#KP#KW#K`PPPP$!d$%Z$+r$+u$+x$,q$,t$,w$-O$-WPP$-^$-b$.Y$/X$/]$/qPP$/u$/{$0PP$0S$0W$0Z$1P$1h$2P$2T$2W$2Z$2a$2d$2h$2lR!{RoqOXst!Z#c%j&m&o&p&r,h,m1w1zY!uQ'Z-Y1[5]Q%pvQ%xyQ&P|Q&e!VS'R!e-QQ'a!iS'g!r!xS*c$|*hQ+f%yQ+s&RQ,X&_Q-W'YQ-b'bQ-j'hQ/|*jQ1f,YR;Y:g%OdOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%j%p%}&f&i&m&o&p&r&v'O']'m'}(P(V(^(r(v(z)y+O+S,e,h,m-^-f-t-z.l.s0[0a0q1_1o1p1r1t1w1z1|2m2s3Z5Y5d5t5u5x6]7w7|8]8gS#p]:d!r)[$[$m'S)n,y,|.{2]3p5W6S9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]Q*u%ZQ+k%{Q,Z&bQ,b&jQ.c;QQ0h+^Q0l+`Q0w+lQ1n,`Q2{.[Q4v0rQ5k1gQ6i3PQ6u;RQ7h4wR8m6j&|kOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%j%p%}&f&i&j&m&o&p&r&v'O'S']'m'}(P(V(^(r(v(z)n)y+O+S+^,e,h,m,y,|-^-f-t-z.[.l.s.{0[0a0q1_1o1p1r1t1w1z1|2]2m2s3P3Z3p5W5Y5d5t5u5x6S6]6j7w7|8]8g9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]t!nQ!r!u!x!y'R'Y'Z'g'h'i-Q-W-Y-j1[5]5_$v$si#u#w$c$d$x${%O%Q%[%]%a)u){)}*P*R*Y*`*p*q+]+`+w+z.Z.i/Z/j/k/m0Q0S0^1R1U1^3O3x4S4[4f4n4p5c6g7T7^7y8j8w9[9n:O:W:y:z:|:};O;P;S;T;U;V;W;X;_;`;a;b;c;d;g;h;i;j;k;l;m;n;q;r<Y<b<c<f<gQ&S|Q'P!eS'V%f-TQ+k%{Q,Z&bQ0]*yQ0w+lQ0|+rQ1m,_Q1n,`Q4v0rQ5P1OQ5k1gQ5n1iQ5o1lQ7h4wQ7k4|Q8U5qQ9V7lR9b8RrnOXst!V!Z#c%j&d&m&o&p&r,h,m1w1zR,]&f&v^OPXYstuvwz!Z!`!g!j!o#R#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%j%p%}&f&i&j&m&o&p&r&v'O']'m(P(V(^(r(v(z)n)y+O+S+^,e,h,m,y,|-^-f-t-z.[.l.s.{0[0a0q1_1o1p1r1t1w1z1|2]2m2s3P3Z3p5W5Y5d5t5u5x6S6]6j7w7|8]8g9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<[<][#[WZ#V#Y'S'}!S%gm#g#h#k%b%e(W(b(c(d+Q+R+T,d,z-x.O.P.Q.S2P2w2x6R6dQ%sxQ%wyS%||&RQ&Y!TQ'^!hQ'`!iQ(k#rS*V$x*ZS+e%x%yQ+i%{Q,S&]Q,W&_S-a'a'bQ.^(lQ/g*WQ0p+fQ0v+lQ0x+mQ0{+qQ1a,TS1e,X,YQ2i-bQ3y/cQ4u0rQ4y0uQ5O0}Q5j1fQ7Q3zQ7g4wQ7j4{Q9R7fR9y9S!O$zi#w%O%Q%[%]%a)}*P*Y*p*q.i/j0Q0S0^3x4f8w<Y<b<c!S%uy!i!t%w%x%y'Q'`'a'b'f'p*b+e+f,}-a-b-i/t0p2b2i2p4^Q+_%sQ+x&VQ+{&WQ,V&_Q.](kQ1`,SU1d,W,X,YQ3Q.^Q5e1aS5i1e1fQ8Q5j#W<^#u$c$d$x${)u){*R*`+]+`+w+z.Z/Z/k/m1R1U1^3O4S4[4n4p5c6g7T7^7y8j9[9n:O:W:|;O;S;U;W;_;a;c;g;i;k;m;q<f<go<_:y:z:};P;T;V;X;`;b;d;h;j;l;n;rW%Ti%V*r<YS&V!Q&dQ&W!RQ&X!SR+v&T$w%Si#u#w$c$d$x${%O%Q%[%]%a)u){)}*P*R*Y*`*p*q+]+`+w+z.Z.i/Z/j/k/m0Q0S0^1R1U1^3O3x4S4[4f4n4p5c6g7T7^7y8j8w9[9n:O:W:y:z:|:};O;P;S;T;U;V;W;X;_;`;a;b;c;d;g;h;i;j;k;l;m;n;q;r<Y<b<c<f<gT)v$u)wV*v%Z;Q;RU'V!e%f-TS(y#y#zQ+p&OS.V(g(hQ1V+|Q4g0ZR7p5U&|kOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%j%p%}&f&i&j&m&o&p&r&v'O'S']'m'}(P(V(^(r(v(z)n)y+O+S+^,e,h,m,y,|-^-f-t-z.[.l.s.{0[0a0q1_1o1p1r1t1w1z1|2]2m2s3P3Z3p5W5Y5d5t5u5x6S6]6j7w7|8]8g9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]$i$`c#X#d%n%o%q'|(S(n(u(})O)P)Q)R)S)T)U)V)W)X)Z)^)b)l+Z+o-O-m-r-w-y.h.n.r.t.u.v/V0_2W2Z2k2r3Y3_3`3a3b3c3d3e3f3g3h3i3j3k3n3o3t4k4s6U6[6a6o6p6y6z7r8a8e8n8t8u9k9{:S:e<PT#SV#T&}kOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%j%p%}&f&i&j&m&o&p&r&v'O'S']'m'}(P(V(^(r(v(z)n)y+O+S+^,e,h,m,y,|-^-f-t-z.[.l.s.{0[0a0q1_1o1p1r1t1w1z1|2]2m2s3P3Z3p5W5Y5d5t5u5x6S6]6j7w7|8]8g9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]Q'T!eR2^-Qv!nQ!e!r!u!x!y'R'Y'Z'g'h'i-Q-W-Y-j1[5]5_S*b$|*hS/t*c*jQ/}*kQ1X,OQ4^/|R4a0PnqOXst!Z#c%j&m&o&p&r,h,m1w1zQ&t!^Q'q!wS(m#t:kQ+c%vQ,Q&YQ,R&[Q-_'_Q-l'jS.g(r;[S0`+O;eQ0n+dQ1Z,PQ2O,oQ2Q,pQ2Y,{Q2g-`Q2j-dS4l0a;oQ4q0oS4t0q;pQ6T2[Q6X2hQ6^2oQ7e4rQ8b6VQ8c6YQ8f6_R9h8_$d$_c#X#d%o%q'|(S(n(u(})O)P)Q)R)S)T)U)V)W)X)Z)^)b)l+Z+o-O-m-r-w-y.h.n.r.u.v/V0_2W2Z2k2r3Y3_3`3a3b3c3d3e3f3g3h3i3j3k3n3o3t4k4s6U6[6a6o6p6y6z7r8a8e8n8t8u9k9{:S:e<PS(j#o'dU*o%R(q3mS+Y%n.tQ2|0hQ6f2{Q8l6iR9o8m$d$^c#X#d%o%q'|(S(n(u(})O)P)Q)R)S)T)U)V)W)X)Z)^)b)l+Z+o-O-m-r-w-y.h.n.r.u.v/V0_2W2Z2k2r3Y3_3`3a3b3c3d3e3f3g3h3i3j3k3n3o3t4k4s6U6[6a6o6p6y6z7r8a8e8n8t8u9k9{:S:e<PS(i#o'dS({#z$_S+X%n.tS.W(h(jQ.w)]Q0e+YR2y.X&|kOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%j%p%}&f&i&j&m&o&p&r&v'O'S']'m'}(P(V(^(r(v(z)n)y+O+S+^,e,h,m,y,|-^-f-t-z.[.l.s.{0[0a0q1_1o1p1r1t1w1z1|2]2m2s3P3Z3p5W5Y5d5t5u5x6S6]6j7w7|8]8g9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]S#p]:dQ&o!XQ&p!YQ&r![Q&s!]R1v,kQ'[!hQ+[%sQ-]'^S.Y(k+_Q2e-[W2}.].^0g0iQ6W2fU6e2z2|3QS8i6f6hS9m8k8lS:U9l9oQ:^:VR:a:_U!vQ'Z-YT5Z1[5]!Q_OXZ`st!V!Z#c#g%b%j&d&f&m&o&p&r(d,h,m.P1w1z]!pQ!r'Z-Y1[5]T#p]:d%Y{OPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%j%p%}&f&i&j&m&o&p&r&v'O']'m'}(P(V(^(r(v(z)y+O+S+^,e,h,m-^-f-t-z.[.l.s0[0a0q1_1o1p1r1t1w1z1|2m2s3P3Z5Y5d5t5u5x6]6j7w7|8]8gS(y#y#zS.V(g(h!s;v$[$m'S)n,y,|.{2]3p5W6S9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]Y!tQ'Z-Y1[5]Q'f!rS'p!u!xS'r!y5_S-i'g'hQ-k'iR2p-jQ'o!tS(`#f1qS-h'f'rQ/f*VQ/r*bQ2q-kQ4O/gS4X/s/}Q7P3yS7[4_4aQ8y7QR9Q7_Q#vbQ'n!tS(_#f1qS(a#l*}Q+P%cQ+a%tQ+g%zU-g'f'o'rQ-{(`Q/e*VQ/q*bQ/w*eQ0m+bQ1b,US2n-h-kQ2v.TS3}/f/gS4W/r/}Q4Z/vQ4]/xQ5g1cQ6`2qQ7O3yQ7S4OS7W4X4aQ7]4`Q8O5hS8x7P7QQ8|7XQ9O7[Q9_8PQ9u8yQ9v8}Q9x9QQ:Q9`Q:Y9wQ;y;tQ<U;}R<V<OV!vQ'Z-Y%YaOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%j%p%}&f&i&j&m&o&p&r&v'O']'m'}(P(V(^(r(v(z)y+O+S+^,e,h,m-^-f-t-z.[.l.s0[0a0q1_1o1p1r1t1w1z1|2m2s3P3Z5Y5d5t5u5x6]6j7w7|8]8gS#vz!j!r;s$[$m'S)n,y,|.{2]3p5W6S9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]R;y<[%YbOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%j%p%}&f&i&j&m&o&p&r&v'O']'m'}(P(V(^(r(v(z)y+O+S+^,e,h,m-^-f-t-z.[.l.s0[0a0q1_1o1p1r1t1w1z1|2m2s3P3Z5Y5d5t5u5x6]6j7w7|8]8gQ%cj!S%ty!i!t%w%x%y'Q'`'a'b'f'p*b+e+f,}-a-b-i/t0p2b2i2p4^S%zz!jQ+b%uQ,U&_W1c,V,W,X,YU5h1d1e1fS8P5i5jQ9`8Q!r;t$[$m'S)n,y,|.{2]3p5W6S9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]Q;}<ZR<O<[$|eOPXYstuvw!Z!`!g!o#R#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%j%p%}&f&i&m&o&p&r&v'O']'m(P(V(^(r(v(z)y+O+S+^,e,h,m-^-f-t-z.[.l.s0[0a0q1_1o1p1r1t1w1z1|2m2s3P3Z5Y5d5t5u5x6]6j7w7|8]8gY#aWZ#V#Y'}!S%gm#g#h#k%b%e(W(b(c(d+Q+R+T,d,z-x.O.P.Q.S2P2w2x6R6dQ,c&j!p;u$[$m)n,y,|.{2]3p5W6S9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]R;x'SS'W!e%fR2`-T%OdOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%j%p%}&f&i&m&o&p&r&v'O']'m'}(P(V(^(r(v(z)y+O+S,e,h,m-^-f-t-z.l.s0[0a0q1_1o1p1r1t1w1z1|2m2s3Z5Y5d5t5u5x6]7w7|8]8g!r)[$[$m'S)n,y,|.{2]3p5W6S9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]Q,b&jQ0h+^Q2{.[Q6i3PR8m6j!b$Uc#X%n'|(S(n(u)W)X)^)b+o-m-r-w-y.h.n/V0_2k2r3Y3k4k4s6[6a6o8e9k:e!P:r)Z)l-O.t2W2Z3_3i3j3n3t6U6p6y6z7r8a8n8t8u9{:S<P!f$Wc#X%n'|(S(n(u)T)U)W)X)^)b+o-m-r-w-y.h.n/V0_2k2r3Y3k4k4s6[6a6o8e9k:e!T:t)Z)l-O.t2W2Z3_3f3g3i3j3n3t6U6p6y6z7r8a8n8t8u9{:S<P!^$[c#X%n'|(S(n(u)^)b+o-m-r-w-y.h.n/V0_2k2r3Y3k4k4s6[6a6o8e9k:eQ3x/az<])Z)l-O.t2W2Z3_3n3t6U6p6y6z7r8a8n8t8u9{:S<PQ<b<dR<c<e&|kOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%j%p%}&f&i&j&m&o&p&r&v'O'S']'m'}(P(V(^(r(v(z)n)y+O+S+^,e,h,m,y,|-^-f-t-z.[.l.s.{0[0a0q1_1o1p1r1t1w1z1|2]2m2s3P3Z3p5W5Y5d5t5u5x6S6]6j7w7|8]8g9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]S$nh$oR3q.z'TgOPWXYZhstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m$o%j%p%}&f&i&j&m&o&p&r&v'O'S']'m'}(P(V(^(r(v(z)n)y+O+S+^,e,h,m,y,|-^-f-t-z.[.l.s.z.{0[0a0q1_1o1p1r1t1w1z1|2]2m2s3P3Z3p5W5Y5d5t5u5x6S6]6j7w7|8]8g9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]T$jf$pQ$hfS)e$k)iR)q$pT$if$pT)g$k)i'ThOPWXYZhstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m$o%j%p%}&f&i&j&m&o&p&r&v'O'S']'m'}(P(V(^(r(v(z)n)y+O+S+^,e,h,m,y,|-^-f-t-z.[.l.s.z.{0[0a0q1_1o1p1r1t1w1z1|2]2m2s3P3Z3p5W5Y5d5t5u5x6S6]6j7w7|8]8g9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]T$nh$oQ$qhR)p$o%YjOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%j%p%}&f&i&j&m&o&p&r&v'O']'m'}(P(V(^(r(v(z)y+O+S+^,e,h,m-^-f-t-z.[.l.s0[0a0q1_1o1p1r1t1w1z1|2m2s3P3Z5Y5d5t5u5x6]6j7w7|8]8g!s<Z$[$m'S)n,y,|.{2]3p5W6S9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]#clOPXZst!Z!`!o#R#c#n#{$m%j&f&i&j&m&o&p&r&v'O'](z)n+S+^,e,h,m-^.[.{0[1_1o1p1r1t1w1z1|3P3p5Y5d5t5u5x6j7w7|8]!O%Ri#w%O%Q%[%]%a)}*P*Y*p*q.i/j0Q0S0^3x4f8w<Y<b<c#W(q#u$c$d$x${)u){*R*`+]+`+w+z.Z/Z/k/m1R1U1^3O4S4[4n4p5c6g7T7^7y8j9[9n:O:W:|;O;S;U;W;_;a;c;g;i;k;m;q<f<gQ*z%_Q/W)zo3m:y:z:};P;T;V;X;`;b;d;h;j;l;n;r!O$yi#w%O%Q%[%]%a)}*P*Y*p*q.i/j0Q0S0^3x4f8w<Y<b<cQ*[$zS*e$|*hQ*{%`Q/x*f#W;{#u$c$d$x${)u){*R*`+]+`+w+z.Z/Z/k/m1R1U1^3O4S4[4n4p5c6g7T7^7y8j9[9n:O:W:|;O;S;U;W;_;a;c;g;i;k;m;q<f<gn;|:y:z:};P;T;V;X;`;b;d;h;j;l;n;rQ<Q<^Q<R<_Q<S<`R<T<a!O%Ri#w%O%Q%[%]%a)}*P*Y*p*q.i/j0Q0S0^3x4f8w<Y<b<c#W(q#u$c$d$x${)u){*R*`+]+`+w+z.Z/Z/k/m1R1U1^3O4S4[4n4p5c6g7T7^7y8j9[9n:O:W:|;O;S;U;W;_;a;c;g;i;k;m;q<f<go3m:y:z:};P;T;V;X;`;b;d;h;j;l;n;rnoOXst!Z#c%j&m&o&p&r,h,m1w1zQ*_${Q,v&yQ,w&{R4R/k$v%Si#u#w$c$d$x${%O%Q%[%]%a)u){)}*P*R*Y*`*p*q+]+`+w+z.Z.i/Z/j/k/m0Q0S0^1R1U1^3O3x4S4[4f4n4p5c6g7T7^7y8j8w9[9n:O:W:y:z:|:};O;P;S;T;U;V;W;X;_;`;a;b;c;d;g;h;i;j;k;l;m;n;q;r<Y<b<c<f<gQ+y&WQ1T+{Q5S1SR7o5TT*g$|*hS*g$|*hT5[1[5]S/v*d5YT4`0O7wQ+a%tQ/w*eQ0m+bQ1b,UQ5g1cQ8O5hQ9_8PR:Q9`!O%Oi#w%O%Q%[%]%a)}*P*Y*p*q.i/j0Q0S0^3x4f8w<Y<b<cr)}$v(s*O*n*|/i0U0V3W4P4j6}7`9t;z<W<XS0Q*m0R#W:|#u$c$d$x${)u){*R*`+]+`+w+z.Z/Z/k/m1R1U1^3O4S4[4n4p5c6g7T7^7y8j9[9n:O:W:|;O;S;U;W;_;a;c;g;i;k;m;q<f<gn:}:y:z:};P;T;V;X;`;b;d;h;j;l;n;r!^;_(o)`*U*^._.b.f/S/X/a/n0f1Q1S3T4Q4U5R5T6k6n7U7Y7b7d8{9P:X<d<e`;`3l6q6t6x8o9p9s:bS;i.a3UT;j6s8r!O%Qi#w%O%Q%[%]%a)}*P*Y*p*q.i/j0Q0S0^3x4f8w<Y<b<cv*P$v(s*Q*m*|/]/i0U0V3W4P4b4j6}7`9t;z<W<XS0S*n0T#W;O#u$c$d$x${)u){*R*`+]+`+w+z.Z/Z/k/m1R1U1^3O4S4[4n4p5c6g7T7^7y8j9[9n:O:W:|;O;S;U;W;_;a;c;g;i;k;m;q<f<gn;P:y:z:};P;T;V;X;`;b;d;h;j;l;n;r!b;a(o)`*U*^.`.a.f/S/X/a/n0f1Q1S3R3T4Q4U5R5T6k6l6n7U7Y7b7d8{9P:X<d<ed;b3l6r6s6x8o8p9p9q9s:bS;k.b3VT;l6t8srnOXst!V!Z#c%j&d&m&o&p&r,h,m1w1zQ&a!UR,e&jrnOXst!V!Z#c%j&d&m&o&p&r,h,m1w1zR&a!UQ+}&XR1P+vsnOXst!V!Z#c%j&d&m&o&p&r,h,m1w1zQ1],SS5b1`1aU7x5`5a5eS9Z7z7{S9|9Y9]Q:Z9}R:`:[Q&h!VR,^&dR5n1iS%||&RR0x+mQ&m!WR,h&nR,n&sT1x,m1zR,r&tQ,q&tR2R,rQ't!zR-n'tSsOtQ#cXT%ms#cQ!}TR'v!}Q#QUR'x#QQ)w$uR/T)wQ#TVR'z#TQ#WWU(Q#W(R-uQ(R#XR-u(SQ-R'TR2_-RQ.j(sR3X.jQ.m(uS3[.m3]R3].nQ-Y'ZR2c-YY!rQ'Z-Y1[5]R'e!rS#^W%eU(X#^(Y-vQ(Y#_R-v(TQ-U'WR2a-Ut`OXst!V!Z#c%j&d&f&m&o&p&r,h,m1w1zS#gZ%bU#q`#g.PR.P(dQ(e#iQ-|(aW.U(e-|2t6bQ2t-}R6b2uQ)i$kR.|)iQ$ohR)o$oQ$bcU)_$b-q:xQ-q:eR:x)lQ/d*VW3{/d3|7R8zU3|/e/f/gS7R3}4OR8z7S$X)|$v(o(s)`*U*^*m*n*w*x*|.a.b.d.e.f/S/X/]/_/a/i/n0U0V0f1Q1S3R3S3T3W3l4P4Q4U4b4d4j5R5T6k6l6m6n6s6t6v6w6x6}7U7Y7`7b7d8o8p8q8{9P9p9q9r9s9t:X:b;z<W<X<d<eQ/l*^U4T/l4V7VQ4V/nR7V4UQ*h$|R/z*hr*O$v(s*m*n*|/i0U0V3W4P4j6}7`9t;z<W<X!^._(o)`*U*^.a.b.f/S/X/a/n0f1Q1S3T4Q4U5R5T6k6n7U7Y7b7d8{9P:X<d<eU/^*O._6qa6q3l6s6t6x8o9p9s:bQ0R*mQ3U.aU4c0R3U8rR8r6sv*Q$v(s*m*n*|/]/i0U0V3W4P4b4j6}7`9t;z<W<X!b.`(o)`*U*^.a.b.f/S/X/a/n0f1Q1S3R3T4Q4U5R5T6k6l6n7U7Y7b7d8{9P:X<d<eU/`*Q.`6re6r3l6s6t6x8o8p9p9q9s:bQ0T*nQ3V.bU4e0T3V8sR8s6tQ*s%UR0X*sQ4o0fR7c4oQ+U%hR0d+UQ5V1VS7q5V9XR9X7rQ,P&YR1Y,PQ5]1[R7u5]Q1h,ZS5l1h8SR8S5nQ0s+iW4x0s4z7i9TQ4z0vQ7i4yR9T7jQ+n%|R0y+nQ1z,mR5|1zYrOXst#cQ&q!ZQ+W%jQ,g&mQ,i&oQ,j&pQ,l&rQ1u,hS1x,m1zR5{1wQ%lpQ&u!_Q&x!aQ&z!bQ&|!cQ'l!tQ+V%iQ+c%vQ+u&SQ,]&hQ,t&wW-e'f'n'o'rQ-l'jQ/y*gQ0n+dS1k,^,aQ2S,sQ2T,vQ2U,wQ2j-dW2l-g-h-k-mQ4q0oQ4}0|Q5Q1QQ5f1bQ5p1mQ5z1vU6Z2k2n2qQ6^2oQ7e4rQ7m5PQ7n5RQ7t5[Q7}5gQ8T5oS8d6[6`Q8f6_Q9U7kQ9^8OQ9c8UQ9j8eQ9z9VQ:P9_Q:T9kR:]:QQ%vyQ'_!iQ'j!tU+d%w%x%yQ,{'QU-`'`'a'bS-d'f'pQ/p*bS0o+e+fQ2[,}S2h-a-bQ2o-iQ4Y/tQ4r0pQ6V2bQ6Y2iQ6_2pR7Z4^S$wi<YR*t%VU%Ui%V<YR0W*rQ$viS(o#u+`Q(s#wS)`$c$dQ*U$xQ*^${Q*m%OQ*n%QQ*w%[Q*x%]Q*|%aQ.a:|Q.b;OQ.d;SQ.e;UQ.f;WQ/S)uS/X){/ZQ/])}Q/_*PQ/a*RQ/i*YQ/n*`Q0U*pQ0V*qh0f+].Z1^3O5c6g7y8j9[9n:O:WQ1Q+wQ1S+zQ3R;_Q3S;aQ3T;cQ3W.iS3l:y:zQ4P/jQ4Q/kQ4U/mQ4b0QQ4d0SQ4j0^Q5R1RQ5T1UQ6k;gQ6l;iQ6m;kQ6n;mQ6s:}Q6t;PQ6v;TQ6w;VQ6x;XQ6}3xQ7U4SQ7Y4[Q7`4fQ7b4nQ7d4pQ8o;dQ8p;`Q8q;bQ8{7TQ9P7^Q9p;hQ9q;jQ9r;lQ9s;nQ9t8wQ:X;qQ:b;rQ;z<YQ<W<bQ<X<cQ<d<fR<e<gnpOXst!Z#c%j&m&o&p&r,h,m1w1zQ!fPS#eZ#nQ&w!`U'c!o5Y7wQ'y#RQ(|#{Q)m$mS,a&f&iQ,f&jQ,s&vQ,x'OQ-[']Q.p(zQ/Q)nQ0b+SQ0i+^Q1s,eQ2f-^Q2|.[Q3s.{Q4h0[Q5a1_Q5r1oQ5s1pQ5w1rQ5y1tQ6O1|Q6f3PQ6{3pQ7{5dQ8X5tQ8Y5uQ8[5xQ8l6jQ9]7|R9g8]#WcOPXZst!Z!`!o#c#n#{%j&f&i&j&m&o&p&r&v'O'](z+S+^,e,h,m-^.[0[1_1o1p1r1t1w1z1|3P5Y5d5t5u5x6j7w7|8]Q#XWQ#dYQ%nuQ%ovS%qw!gS'|#V(PQ(S#YQ(n#tQ(u#xQ(}$OQ)O$PQ)P$QQ)Q$RQ)R$SQ)S$TQ)T$UQ)U$VQ)V$WQ)W$XQ)X$YQ)Z$[Q)^$aQ)b$eW)l$m)n.{3pQ+Z%pQ+o%}S-O'S2]Q-m'mS-r'}-tQ-w(VQ-y(^Q.h(rQ.n(vQ.r:cQ.t:fQ.u:gQ.v:jQ/V)yQ0_+OQ2W,yQ2Z,|Q2k-fQ2r-zQ3Y.lQ3_:kQ3`:lQ3a:mQ3b:nQ3c:oQ3d:pQ3e:qQ3f:rQ3g:sQ3h:tQ3i:uQ3j:vQ3k.sQ3n:{Q3o;YQ3t:wQ4k0aQ4s0qQ6U;ZQ6[2mQ6a2sQ6o3ZQ6p;[Q6y;^Q6z;eQ7r5WQ8a6SQ8e6]Q8n;fQ8t;oQ8u;pQ9k8gQ9{9WQ:S9iQ:e#RR<P<]R#ZWR'U!eY!tQ'Z-Y1[5]S'Q!e-QQ'f!rS'p!u!xS'r!y5_S,}'R'YS-i'g'hQ-k'iQ2b-WR2p-jR(t#wR(w#xQ!fQT-X'Z-Y]!qQ!r'Z-Y1[5]Q#o]R'd:dT#jZ%bS#iZ%bS%hm,dU(a#g#h#kS-}(b(cQ.R(dQ0c+TQ2u.OU2v.P.Q.SS6c2w2xR8h6d`#]W#V#Y%e'}(W+Q-xr#fZm#g#h#k%b(b(c(d+T.O.P.Q.S2w2x6dQ1q,dQ2X,zQ6Q2PQ8`6RT;w'S+RT#`W%eS#_W%eS(O#V(WS(T#Y+QS-P'S+RT-s'}-xT'X!e%fQ$kfR)s$pT)h$k)iR3r.zT*X$x*ZR*a${Q0g+]Q2z.ZQ5`1^Q6h3OQ7z5cQ8k6gQ9Y7yQ9l8jQ9}9[Q:V9nQ:[:OR:_:WnqOXst!Z#c%j&m&o&p&r,h,m1w1zQ&g!VR,]&dtmOXst!U!V!Z#c%j&d&m&o&p&r,h,m1w1zR,d&jT%im,dR1W+|R,[&bQ&Q|R+t&RR+j%{T&k!W&nT&l!W&nT1y,m1z\",\n nodeNames: \"\u26A0 ArithOp ArithOp JSXStartTag LineComment BlockComment Script Hashbang ExportDeclaration export Star as VariableName String Escape from ; default FunctionDeclaration async function VariableDefinition > < TypeParamList TypeDefinition extends ThisType this LiteralType ArithOp Number BooleanLiteral TemplateType InterpolationEnd Interpolation InterpolationStart NullType null VoidType void TypeofType typeof MemberExpression . ?. PropertyName [ TemplateString Escape Interpolation super RegExp ] ArrayExpression Spread , } { ObjectExpression Property async get set PropertyDefinition Block : NewExpression new TypeArgList CompareOp < ) ( ArgList UnaryExpression delete LogicOp BitOp YieldExpression yield AwaitExpression await ParenthesizedExpression ClassExpression class ClassBody MethodDeclaration Decorator @ MemberExpression PrivatePropertyName CallExpression declare Privacy static abstract override PrivatePropertyDefinition PropertyDeclaration readonly accessor Optional TypeAnnotation Equals StaticBlock FunctionExpression ArrowFunction ParamList ParamList ArrayPattern ObjectPattern PatternProperty Privacy readonly Arrow MemberExpression BinaryExpression ArithOp ArithOp ArithOp ArithOp BitOp CompareOp instanceof satisfies in const CompareOp BitOp BitOp BitOp LogicOp LogicOp ConditionalExpression LogicOp LogicOp AssignmentExpression UpdateOp PostfixExpression CallExpression TaggedTemplateExpression DynamicImport import ImportMeta JSXElement JSXSelfCloseEndTag JSXSelfClosingTag JSXIdentifier JSXBuiltin JSXIdentifier JSXNamespacedName JSXMemberExpression JSXSpreadAttribute JSXAttribute JSXAttributeValue JSXEscape JSXEndTag JSXOpenTag JSXFragmentTag JSXText JSXEscape JSXStartCloseTag JSXCloseTag PrefixCast ArrowFunction TypeParamList SequenceExpression KeyofType keyof UniqueType unique ImportType InferredType infer TypeName ParenthesizedType FunctionSignature ParamList NewSignature IndexedType TupleType Label ArrayType ReadonlyType ObjectType MethodType PropertyType IndexSignature PropertyDefinition CallSignature TypePredicate is NewSignature new UnionType LogicOp IntersectionType LogicOp ConditionalType ParameterizedType ClassDeclaration abstract implements type VariableDeclaration let var using TypeAliasDeclaration InterfaceDeclaration interface EnumDeclaration enum EnumBody NamespaceDeclaration namespace module AmbientDeclaration declare GlobalDeclaration global ClassDeclaration ClassBody AmbientFunctionDeclaration ExportGroup VariableName VariableName ImportDeclaration ImportGroup ForStatement for ForSpec ForInSpec ForOfSpec of WhileStatement while WithStatement with DoStatement do IfStatement if else SwitchStatement switch SwitchBody CaseLabel case DefaultLabel TryStatement try CatchClause catch FinallyClause finally ReturnStatement return ThrowStatement throw BreakStatement break ContinueStatement continue DebuggerStatement debugger LabeledStatement ExpressionStatement SingleExpression SingleClassItem\",\n maxTerm: 371,\n context: trackNewline,\n nodeProps: [\n [\"isolate\", -8,4,5,13,33,35,48,50,52,\"\"],\n [\"group\", -26,8,16,18,65,201,205,209,210,212,215,218,228,230,236,238,240,242,245,251,257,259,261,263,265,267,268,\"Statement\",-32,12,13,28,31,32,38,48,51,52,54,59,67,75,79,81,83,84,106,107,116,117,134,137,139,140,141,142,144,145,164,165,167,\"Expression\",-23,27,29,33,37,39,41,168,170,172,173,175,176,177,179,180,181,183,184,185,195,197,199,200,\"Type\",-3,87,99,105,\"ClassItem\"],\n [\"openedBy\", 22,\"<\",34,\"InterpolationStart\",53,\"[\",57,\"{\",72,\"(\",157,\"JSXStartCloseTag\"],\n [\"closedBy\", 23,\">\",36,\"InterpolationEnd\",47,\"]\",58,\"}\",73,\")\",162,\"JSXEndTag\"]\n ],\n propSources: [jsHighlight],\n skippedNodes: [0,4,5,271],\n repeatNodeCount: 37,\n tokenData: \"$Fj(CSR!bOX%ZXY+gYZ-yZ[+g[]%Z]^.c^p%Zpq+gqr/mrs3cst:_tuEruvJSvwLkwx! Yxy!'iyz!(sz{!)}{|!,q|}!.O}!O!,q!O!P!/Y!P!Q!9j!Q!R#8g!R![#:v![!]#Gv!]!^#IS!^!_#J^!_!`#Ns!`!a$#_!a!b$(l!b!c$,k!c!}Er!}#O$-u#O#P$/P#P#Q$4h#Q#R$5r#R#SEr#S#T$7P#T#o$8Z#o#p$<k#p#q$=a#q#r$>q#r#s$?}#s$f%Z$f$g+g$g#BYEr#BY#BZ$AX#BZ$ISEr$IS$I_$AX$I_$I|Er$I|$I}$Dd$I}$JO$Dd$JO$JTEr$JT$JU$AX$JU$KVEr$KV$KW$AX$KW&FUEr&FU&FV$AX&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$AX?HUOEr(n%d_$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&j&hT$f&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c&j&zP;=`<%l&c'|'U]$f&j(R!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!b(SU(R!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!b(iP;=`<%l'}'|(oP;=`<%l&}'[(y]$f&j(OpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(rp)wU(OpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)rp*^P;=`<%l)r'[*dP;=`<%l(r#S*nX(Op(R!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g#S+^P;=`<%l*g(n+dP;=`<%l%Z(CS+rq$f&j(Op(R!b't(;dOX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p$f%Z$f$g+g$g#BY%Z#BY#BZ+g#BZ$IS%Z$IS$I_+g$I_$JT%Z$JT$JU+g$JU$KV%Z$KV$KW+g$KW&FU%Z&FU&FV+g&FV;'S%Z;'S;=`+a<%l?HT%Z?HT?HU+g?HUO%Z(CS.ST(P#S$f&j'u(;dO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c(CS.n_$f&j(Op(R!b'u(;dOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#`/x`$f&j!o$Ip(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S1V`#t$Id$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`2X!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S2d_#t$Id$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/|3l_'}$(n$f&j(R!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k(^4r_$f&j(R!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k&z5vX$f&jOr5qrs6cs!^5q!^!_6y!_#o5q#o#p6y#p;'S5q;'S;=`7h<%lO5q&z6jT$a`$f&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c`6|TOr6yrs7]s;'S6y;'S;=`7b<%lO6y`7bO$a``7eP;=`<%l6y&z7kP;=`<%l5q(^7w]$a`$f&j(R!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!r8uZ(R!bOY8pYZ6yZr8prs9hsw8pwx6yx#O8p#O#P6y#P;'S8p;'S;=`:R<%lO8p!r9oU$a`(R!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!r:UP;=`<%l8p(^:[P;=`<%l4k#%|:hh$f&j(Op(R!bOY%ZYZ&cZq%Zqr<Srs&}st%ZtuCruw%Zwx(rx!^%Z!^!_*g!_!c%Z!c!}Cr!}#O%Z#O#P&c#P#R%Z#R#SCr#S#T%Z#T#oCr#o#p*g#p$g%Z$g;'SCr;'S;=`El<%lOCr(r<__VS$f&j(Op(R!bOY<SYZ&cZr<Srs=^sw<Swx@nx!^<S!^!_Bm!_#O<S#O#P>`#P#o<S#o#pBm#p;'S<S;'S;=`Cl<%lO<S(Q=g]VS$f&j(R!bOY=^YZ&cZw=^wx>`x!^=^!^!_?q!_#O=^#O#P>`#P#o=^#o#p?q#p;'S=^;'S;=`@h<%lO=^&n>gXVS$f&jOY>`YZ&cZ!^>`!^!_?S!_#o>`#o#p?S#p;'S>`;'S;=`?k<%lO>`S?XSVSOY?SZ;'S?S;'S;=`?e<%lO?SS?hP;=`<%l?S&n?nP;=`<%l>`!f?xWVS(R!bOY?qZw?qwx?Sx#O?q#O#P?S#P;'S?q;'S;=`@b<%lO?q!f@eP;=`<%l?q(Q@kP;=`<%l=^'`@w]VS$f&j(OpOY@nYZ&cZr@nrs>`s!^@n!^!_Ap!_#O@n#O#P>`#P#o@n#o#pAp#p;'S@n;'S;=`Bg<%lO@ntAwWVS(OpOYApZrAprs?Ss#OAp#O#P?S#P;'SAp;'S;=`Ba<%lOAptBdP;=`<%lAp'`BjP;=`<%l@n#WBvYVS(Op(R!bOYBmZrBmrs?qswBmwxApx#OBm#O#P?S#P;'SBm;'S;=`Cf<%lOBm#WCiP;=`<%lBm(rCoP;=`<%l<S#%|C}i$f&j(g!L^(Op(R!bOY%ZYZ&cZr%Zrs&}st%ZtuCruw%Zwx(rx!Q%Z!Q![Cr![!^%Z!^!_*g!_!c%Z!c!}Cr!}#O%Z#O#P&c#P#R%Z#R#SCr#S#T%Z#T#oCr#o#p*g#p$g%Z$g;'SCr;'S;=`El<%lOCr#%|EoP;=`<%lCr(CSFRk$f&j(Op(R!b$Y#t'{&;d([!LYOY%ZYZ&cZr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$g%Z$g;'SEr;'S;=`I|<%lOEr+dHRk$f&j(Op(R!b$Y#tOY%ZYZ&cZr%Zrs&}st%ZtuGvuw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Gv![!^%Z!^!_*g!_!c%Z!c!}Gv!}#O%Z#O#P&c#P#R%Z#R#SGv#S#T%Z#T#oGv#o#p*g#p$g%Z$g;'SGv;'S;=`Iv<%lOGv+dIyP;=`<%lGv(CSJPP;=`<%lEr%#SJ_`$f&j(Op(R!b#l$IdOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#SKl_$f&j$O$Id(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&COLva(p&;`$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sv%ZvwM{wx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#SNW`$f&j#x$Id(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/|! c_(Q$)`$f&j(OpOY!!bYZ!#hZr!!brs!#hsw!!bwx!$xx!^!!b!^!_!%z!_#O!!b#O#P!#h#P#o!!b#o#p!%z#p;'S!!b;'S;=`!'c<%lO!!b'l!!i_$f&j(OpOY!!bYZ!#hZr!!brs!#hsw!!bwx!$xx!^!!b!^!_!%z!_#O!!b#O#P!#h#P#o!!b#o#p!%z#p;'S!!b;'S;=`!'c<%lO!!b&z!#mX$f&jOw!#hwx6cx!^!#h!^!_!$Y!_#o!#h#o#p!$Y#p;'S!#h;'S;=`!$r<%lO!#h`!$]TOw!$Ywx7]x;'S!$Y;'S;=`!$l<%lO!$Y`!$oP;=`<%l!$Y&z!$uP;=`<%l!#h'l!%R]$a`$f&j(OpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(r!Q!&PZ(OpOY!%zYZ!$YZr!%zrs!$Ysw!%zwx!&rx#O!%z#O#P!$Y#P;'S!%z;'S;=`!']<%lO!%z!Q!&yU$a`(OpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)r!Q!'`P;=`<%l!%z'l!'fP;=`<%l!!b(*Q!'t_!k(!b$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z!'l!)O_!jM|$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'+h!*[b$f&j(Op(R!b'|#)d#m$IdOY%ZYZ&cZr%Zrs&}sw%Zwx(rxz%Zz{!+d{!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S!+o`$f&j(Op(R!b#j$IdOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&-O!,|`$f&j(Op(R!bn&%`OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&C[!.Z_!Y&;l$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(CS!/ec$f&j(Op(R!b|'<nOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!0p!P!Q%Z!Q![!3Y![!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z!'d!0ya$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!2O!P!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z!'d!2Z_!XMt$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l!3eg$f&j(Op(R!bo$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!3Y![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S!3Y#S#X%Z#X#Y!4|#Y#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l!5Vg$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx{%Z{|!6n|}%Z}!O!6n!O!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l!6wc$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l!8_c$f&j(Op(R!bo$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(CS!9uf$f&j(Op(R!b#k$IdOY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Kpxz!;Zz{#,f{!P!;Z!P!Q#-{!Q!^!;Z!^!_#'Z!_!`#5k!`!a#7Q!a!}!;Z!}#O#*}#O#P!Dj#P#o!;Z#o#p#'Z#p;'S!;Z;'S;=`#,`<%lO!;Z(r!;fb$f&j(Op(R!b!USOY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Kpx!P!;Z!P!Q#%Z!Q!^!;Z!^!_#'Z!_!}!;Z!}#O#*}#O#P!Dj#P#o!;Z#o#p#'Z#p;'S!;Z;'S;=`#,`<%lO!;Z(Q!<w`$f&j(R!b!USOY!<nYZ&cZw!<nwx!=yx!P!<n!P!Q!Eb!Q!^!<n!^!_!GY!_!}!<n!}#O!Ja#O#P!Dj#P#o!<n#o#p!GY#p;'S!<n;'S;=`!Kj<%lO!<n&n!>Q^$f&j!USOY!=yYZ&cZ!P!=y!P!Q!>|!Q!^!=y!^!_!@Y!_!}!=y!}#O!Bw#O#P!Dj#P#o!=y#o#p!@Y#p;'S!=y;'S;=`!E[<%lO!=y&n!?Ta$f&j!USO!^&c!_#Z&c#Z#[!>|#[#]&c#]#^!>|#^#a&c#a#b!>|#b#g&c#g#h!>|#h#i&c#i#j!>|#j#m&c#m#n!>|#n#o&c#p;'S&c;'S;=`&w<%lO&cS!@_X!USOY!@YZ!P!@Y!P!Q!@z!Q!}!@Y!}#O!Ac#O#P!Bb#P;'S!@Y;'S;=`!Bq<%lO!@YS!APU!US#Z#[!@z#]#^!@z#a#b!@z#g#h!@z#i#j!@z#m#n!@zS!AfVOY!AcZ#O!Ac#O#P!A{#P#Q!@Y#Q;'S!Ac;'S;=`!B[<%lO!AcS!BOSOY!AcZ;'S!Ac;'S;=`!B[<%lO!AcS!B_P;=`<%l!AcS!BeSOY!@YZ;'S!@Y;'S;=`!Bq<%lO!@YS!BtP;=`<%l!@Y&n!B|[$f&jOY!BwYZ&cZ!^!Bw!^!_!Ac!_#O!Bw#O#P!Cr#P#Q!=y#Q#o!Bw#o#p!Ac#p;'S!Bw;'S;=`!Dd<%lO!Bw&n!CwX$f&jOY!BwYZ&cZ!^!Bw!^!_!Ac!_#o!Bw#o#p!Ac#p;'S!Bw;'S;=`!Dd<%lO!Bw&n!DgP;=`<%l!Bw&n!DoX$f&jOY!=yYZ&cZ!^!=y!^!_!@Y!_#o!=y#o#p!@Y#p;'S!=y;'S;=`!E[<%lO!=y&n!E_P;=`<%l!=y(Q!Eki$f&j(R!b!USOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#Z&}#Z#[!Eb#[#]&}#]#^!Eb#^#a&}#a#b!Eb#b#g&}#g#h!Eb#h#i&}#i#j!Eb#j#m&}#m#n!Eb#n#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!f!GaZ(R!b!USOY!GYZw!GYwx!@Yx!P!GY!P!Q!HS!Q!}!GY!}#O!Ic#O#P!Bb#P;'S!GY;'S;=`!JZ<%lO!GY!f!HZb(R!b!USOY'}Zw'}x#O'}#P#Z'}#Z#[!HS#[#]'}#]#^!HS#^#a'}#a#b!HS#b#g'}#g#h!HS#h#i'}#i#j!HS#j#m'}#m#n!HS#n;'S'};'S;=`(f<%lO'}!f!IhX(R!bOY!IcZw!Icwx!Acx#O!Ic#O#P!A{#P#Q!GY#Q;'S!Ic;'S;=`!JT<%lO!Ic!f!JWP;=`<%l!Ic!f!J^P;=`<%l!GY(Q!Jh^$f&j(R!bOY!JaYZ&cZw!Jawx!Bwx!^!Ja!^!_!Ic!_#O!Ja#O#P!Cr#P#Q!<n#Q#o!Ja#o#p!Ic#p;'S!Ja;'S;=`!Kd<%lO!Ja(Q!KgP;=`<%l!Ja(Q!KmP;=`<%l!<n'`!Ky`$f&j(Op!USOY!KpYZ&cZr!Kprs!=ys!P!Kp!P!Q!L{!Q!^!Kp!^!_!Ns!_!}!Kp!}#O##z#O#P!Dj#P#o!Kp#o#p!Ns#p;'S!Kp;'S;=`#%T<%lO!Kp'`!MUi$f&j(Op!USOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#Z(r#Z#[!L{#[#](r#]#^!L{#^#a(r#a#b!L{#b#g(r#g#h!L{#h#i(r#i#j!L{#j#m(r#m#n!L{#n#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(rt!NzZ(Op!USOY!NsZr!Nsrs!@Ys!P!Ns!P!Q# m!Q!}!Ns!}#O#!|#O#P!Bb#P;'S!Ns;'S;=`##t<%lO!Nst# tb(Op!USOY)rZr)rs#O)r#P#Z)r#Z#[# m#[#])r#]#^# m#^#a)r#a#b# m#b#g)r#g#h# m#h#i)r#i#j# m#j#m)r#m#n# m#n;'S)r;'S;=`*Z<%lO)rt##RX(OpOY#!|Zr#!|rs!Acs#O#!|#O#P!A{#P#Q!Ns#Q;'S#!|;'S;=`##n<%lO#!|t##qP;=`<%l#!|t##wP;=`<%l!Ns'`#$R^$f&j(OpOY##zYZ&cZr##zrs!Bws!^##z!^!_#!|!_#O##z#O#P!Cr#P#Q!Kp#Q#o##z#o#p#!|#p;'S##z;'S;=`#$}<%lO##z'`#%QP;=`<%l##z'`#%WP;=`<%l!Kp(r#%fk$f&j(Op(R!b!USOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#Z%Z#Z#[#%Z#[#]%Z#]#^#%Z#^#a%Z#a#b#%Z#b#g%Z#g#h#%Z#h#i%Z#i#j#%Z#j#m%Z#m#n#%Z#n#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z#W#'d](Op(R!b!USOY#'ZZr#'Zrs!GYsw#'Zwx!Nsx!P#'Z!P!Q#(]!Q!}#'Z!}#O#)w#O#P!Bb#P;'S#'Z;'S;=`#*w<%lO#'Z#W#(fe(Op(R!b!USOY*gZr*grs'}sw*gwx)rx#O*g#P#Z*g#Z#[#(]#[#]*g#]#^#(]#^#a*g#a#b#(]#b#g*g#g#h#(]#h#i*g#i#j#(]#j#m*g#m#n#(]#n;'S*g;'S;=`+Z<%lO*g#W#*OZ(Op(R!bOY#)wZr#)wrs!Icsw#)wwx#!|x#O#)w#O#P!A{#P#Q#'Z#Q;'S#)w;'S;=`#*q<%lO#)w#W#*tP;=`<%l#)w#W#*zP;=`<%l#'Z(r#+W`$f&j(Op(R!bOY#*}YZ&cZr#*}rs!Jasw#*}wx##zx!^#*}!^!_#)w!_#O#*}#O#P!Cr#P#Q!;Z#Q#o#*}#o#p#)w#p;'S#*};'S;=`#,Y<%lO#*}(r#,]P;=`<%l#*}(r#,cP;=`<%l!;Z(CS#,sb$f&j(Op(R!b'v(;d!USOY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Kpx!P!;Z!P!Q#%Z!Q!^!;Z!^!_#'Z!_!}!;Z!}#O#*}#O#P!Dj#P#o!;Z#o#p#'Z#p;'S!;Z;'S;=`#,`<%lO!;Z(CS#.W_$f&j(Op(R!bS(;dOY#-{YZ&cZr#-{rs#/Vsw#-{wx#2gx!^#-{!^!_#4f!_#O#-{#O#P#0X#P#o#-{#o#p#4f#p;'S#-{;'S;=`#5e<%lO#-{(Bb#/`]$f&j(R!bS(;dOY#/VYZ&cZw#/Vwx#0Xx!^#/V!^!_#1j!_#O#/V#O#P#0X#P#o#/V#o#p#1j#p;'S#/V;'S;=`#2a<%lO#/V(AO#0`X$f&jS(;dOY#0XYZ&cZ!^#0X!^!_#0{!_#o#0X#o#p#0{#p;'S#0X;'S;=`#1d<%lO#0X(;d#1QSS(;dOY#0{Z;'S#0{;'S;=`#1^<%lO#0{(;d#1aP;=`<%l#0{(AO#1gP;=`<%l#0X(<v#1qW(R!bS(;dOY#1jZw#1jwx#0{x#O#1j#O#P#0{#P;'S#1j;'S;=`#2Z<%lO#1j(<v#2^P;=`<%l#1j(Bb#2dP;=`<%l#/V(Ap#2p]$f&j(OpS(;dOY#2gYZ&cZr#2grs#0Xs!^#2g!^!_#3i!_#O#2g#O#P#0X#P#o#2g#o#p#3i#p;'S#2g;'S;=`#4`<%lO#2g(<U#3pW(OpS(;dOY#3iZr#3irs#0{s#O#3i#O#P#0{#P;'S#3i;'S;=`#4Y<%lO#3i(<U#4]P;=`<%l#3i(Ap#4cP;=`<%l#2g(=h#4oY(Op(R!bS(;dOY#4fZr#4frs#1jsw#4fwx#3ix#O#4f#O#P#0{#P;'S#4f;'S;=`#5_<%lO#4f(=h#5bP;=`<%l#4f(CS#5hP;=`<%l#-{%#W#5xb$f&j$O$Id(Op(R!b!USOY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Kpx!P!;Z!P!Q#%Z!Q!^!;Z!^!_#'Z!_!}!;Z!}#O#*}#O#P!Dj#P#o!;Z#o#p#'Z#p;'S!;Z;'S;=`#,`<%lO!;Z+h#7_b$W#t$f&j(Op(R!b!USOY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Kpx!P!;Z!P!Q#%Z!Q!^!;Z!^!_#'Z!_!}!;Z!}#O#*}#O#P!Dj#P#o!;Z#o#p#'Z#p;'S!;Z;'S;=`#,`<%lO!;Z$/l#8rp$f&j(Op(R!bo$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!3Y!P!Q%Z!Q![#:v![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S#:v#S#U%Z#U#V#>Q#V#X%Z#X#Y!4|#Y#b%Z#b#c#<v#c#d#AY#d#l%Z#l#m#D[#m#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#;Rk$f&j(Op(R!bo$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!3Y!P!Q%Z!Q![#:v![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S#:v#S#X%Z#X#Y!4|#Y#b%Z#b#c#<v#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#=R_$f&j(Op(R!bo$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#>Zd$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#?i!R!S#?i!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#?i#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#?tf$f&j(Op(R!bo$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#?i!R!S#?i!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#?i#S#b%Z#b#c#<v#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#Acc$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#Bn!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#Bn#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#Bye$f&j(Op(R!bo$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#Bn!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#Bn#S#b%Z#b#c#<v#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#Deg$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#E|![!^%Z!^!_*g!_!c%Z!c!i#E|!i#O%Z#O#P&c#P#R%Z#R#S#E|#S#T%Z#T#Z#E|#Z#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#FXi$f&j(Op(R!bo$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#E|![!^%Z!^!_*g!_!c%Z!c!i#E|!i#O%Z#O#P&c#P#R%Z#R#S#E|#S#T%Z#T#Z#E|#Z#b%Z#b#c#<v#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%Gh#HT_!d$b$f&j#|%<f(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z)[#I__`l$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(@^#Jk^g!*v!h'.r(Op(R!b(tSOY*gZr*grs'}sw*gwx)rx!P*g!P!Q#Kg!Q!^*g!^!_#L]!_!`#M}!`#O*g#P;'S*g;'S;=`+Z<%lO*g(n#KpX$h&j(Op(R!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g$Kh#LfZ#n$Id(Op(R!bOY*gZr*grs'}sw*gwx)rx!_*g!_!`#MX!`#O*g#P;'S*g;'S;=`+Z<%lO*g$Kh#MbX$O$Id(Op(R!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g$Kh#NWX#o$Id(Op(R!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g%Gh$ Oa#[%?x$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`!a$!T!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#W$!`_#g$Ih$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%Gh$#nafBf#o$Id$c#|$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`$$s!`!a$%}!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S$%O_#o$Id$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S$&Ya#n$Id$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`!a$'_!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S$'j`#n$Id$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'+h$(wc(h$Ip$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P$*S!P!^%Z!^!_*g!_!a%Z!a!b$+^!b#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'+`$*__}'#p$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S$+i`$f&j#y$Id(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z#&^$,v_!{!Ln$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(@^$.Q_!P(8n$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(n$/UZ$f&jO!^$/w!^!_$0_!_#i$/w#i#j$0d#j#l$/w#l#m$2V#m#o$/w#o#p$0_#p;'S$/w;'S;=`$4b<%lO$/w(n$0OT^#S$f&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c#S$0dO^#S(n$0i[$f&jO!Q&c!Q![$1_![!^&c!_!c&c!c!i$1_!i#T&c#T#Z$1_#Z#o&c#o#p$3u#p;'S&c;'S;=`&w<%lO&c(n$1dZ$f&jO!Q&c!Q![$2V![!^&c!_!c&c!c!i$2V!i#T&c#T#Z$2V#Z#o&c#p;'S&c;'S;=`&w<%lO&c(n$2[Z$f&jO!Q&c!Q![$2}![!^&c!_!c&c!c!i$2}!i#T&c#T#Z$2}#Z#o&c#p;'S&c;'S;=`&w<%lO&c(n$3SZ$f&jO!Q&c!Q![$/w![!^&c!_!c&c!c!i$/w!i#T&c#T#Z$/w#Z#o&c#p;'S&c;'S;=`&w<%lO&c#S$3xR!Q![$4R!c!i$4R#T#Z$4R#S$4US!Q![$4R!c!i$4R#T#Z$4R#q#r$0_(n$4eP;=`<%l$/w!2r$4s_!V!+S$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S$5}`#v$Id$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&,v$7[_$f&j(Op(R!b(X&%WOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(CS$8jk$f&j(Op(R!b'{&;d$[#t([!LYOY%ZYZ&cZr%Zrs&}st%Ztu$8Zuw%Zwx(rx}%Z}!O$:_!O!Q%Z!Q![$8Z![!^%Z!^!_*g!_!c%Z!c!}$8Z!}#O%Z#O#P&c#P#R%Z#R#S$8Z#S#T%Z#T#o$8Z#o#p*g#p$g%Z$g;'S$8Z;'S;=`$<e<%lO$8Z+d$:jk$f&j(Op(R!b$[#tOY%ZYZ&cZr%Zrs&}st%Ztu$:_uw%Zwx(rx}%Z}!O$:_!O!Q%Z!Q![$:_![!^%Z!^!_*g!_!c%Z!c!}$:_!}#O%Z#O#P&c#P#R%Z#R#S$:_#S#T%Z#T#o$:_#o#p*g#p$g%Z$g;'S$:_;'S;=`$<_<%lO$:_+d$<bP;=`<%l$:_(CS$<hP;=`<%l$8Z!5p$<tX![!3l(Op(R!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g&CO$=la(o&;`$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p#q$+^#q;'S%Z;'S;=`+a<%lO%Z%#`$?O_!Z$I`r`$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(r$@Y_!pS$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(CS$Aj|$f&j(Op(R!b't(;d$Y#t'{&;d([!LYOX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$f%Z$f$g+g$g#BYEr#BY#BZ$AX#BZ$ISEr$IS$I_$AX$I_$JTEr$JT$JU$AX$JU$KVEr$KV$KW$AX$KW&FUEr&FU&FV$AX&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$AX?HUOEr(CS$Duk$f&j(Op(R!b'u(;d$Y#t'{&;d([!LYOY%ZYZ&cZr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$g%Z$g;'SEr;'S;=`I|<%lOEr\",\n tokenizers: [noSemicolon, incdecToken, jsx, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, insertSemicolon, new LocalTokenGroup(\"$S~RRtu[#O#Pg#S#T#|~_P#o#pb~gOt~~jVO#i!P#i#j!U#j#l!P#l#m!q#m;'S!P;'S;=`#v<%lO!P~!UO!R~~!XS!Q![!e!c!i!e#T#Z!e#o#p#Z~!hR!Q![!q!c!i!q#T#Z!q~!tR!Q![!}!c!i!}#T#Z!}~#QR!Q![!P!c!i!P#T#Z!P~#^R!Q![#g!c!i#g#T#Z#g~#jS!Q![#g!c!i#g#T#Z#g#q#r!P~#yP;=`<%l!P~$RO(Z~~\", 141, 332), new LocalTokenGroup(\"j~RQYZXz{^~^O'x~~aP!P!Qd~iO'y~~\", 25, 315)],\n topRules: {\"Script\":[0,6],\"SingleExpression\":[1,269],\"SingleClassItem\":[2,270]},\n dialects: {jsx: 0, ts: 14614},\n dynamicPrecedences: {\"69\":1,\"79\":1,\"81\":1,\"165\":1,\"193\":1},\n specialized: [{term: 319, get: (value) => spec_identifier[value] || -1},{term: 334, get: (value) => spec_word[value] || -1},{term: 70, get: (value) => spec_LessThan[value] || -1}],\n tokenPrec: 14638\n});\n\nexport { parser };\n", "import { parser } from '@lezer/javascript';\nimport { syntaxTree, LRLanguage, indentNodeProp, continuedIndent, flatIndent, delimitedIndent, foldNodeProp, foldInside, defineLanguageFacet, sublanguageProp, LanguageSupport } from '@codemirror/language';\nimport { EditorSelection } from '@codemirror/state';\nimport { EditorView } from '@codemirror/view';\nimport { snippetCompletion, ifNotIn, completeFromList } from '@codemirror/autocomplete';\nimport { NodeWeakMap, IterMode } from '@lezer/common';\n\n/**\nA collection of JavaScript-related\n[snippets](https://codemirror.net/6/docs/ref/#autocomplete.snippet).\n*/\nconst snippets = [\n /*@__PURE__*/snippetCompletion(\"function ${name}(${params}) {\\n\\t${}\\n}\", {\n label: \"function\",\n detail: \"definition\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\\n\\t${}\\n}\", {\n label: \"for\",\n detail: \"loop\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"for (let ${name} of ${collection}) {\\n\\t${}\\n}\", {\n label: \"for\",\n detail: \"of loop\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"do {\\n\\t${}\\n} while (${})\", {\n label: \"do\",\n detail: \"loop\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"while (${}) {\\n\\t${}\\n}\", {\n label: \"while\",\n detail: \"loop\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"try {\\n\\t${}\\n} catch (${error}) {\\n\\t${}\\n}\", {\n label: \"try\",\n detail: \"/ catch block\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"if (${}) {\\n\\t${}\\n}\", {\n label: \"if\",\n detail: \"block\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"if (${}) {\\n\\t${}\\n} else {\\n\\t${}\\n}\", {\n label: \"if\",\n detail: \"/ else block\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"class ${name} {\\n\\tconstructor(${params}) {\\n\\t\\t${}\\n\\t}\\n}\", {\n label: \"class\",\n detail: \"definition\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"import {${names}} from \\\"${module}\\\"\\n${}\", {\n label: \"import\",\n detail: \"named\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"import ${name} from \\\"${module}\\\"\\n${}\", {\n label: \"import\",\n detail: \"default\",\n type: \"keyword\"\n })\n];\n/**\nA collection of snippet completions for TypeScript. Includes the\nJavaScript [snippets](https://codemirror.net/6/docs/ref/#lang-javascript.snippets).\n*/\nconst typescriptSnippets = /*@__PURE__*/snippets.concat([\n /*@__PURE__*/snippetCompletion(\"interface ${name} {\\n\\t${}\\n}\", {\n label: \"interface\",\n detail: \"definition\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"type ${name} = ${type}\", {\n label: \"type\",\n detail: \"definition\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"enum ${name} {\\n\\t${}\\n}\", {\n label: \"enum\",\n detail: \"definition\",\n type: \"keyword\"\n })\n]);\n\nconst cache = /*@__PURE__*/new NodeWeakMap();\nconst ScopeNodes = /*@__PURE__*/new Set([\n \"Script\", \"Block\",\n \"FunctionExpression\", \"FunctionDeclaration\", \"ArrowFunction\", \"MethodDeclaration\",\n \"ForStatement\"\n]);\nfunction defID(type) {\n return (node, def) => {\n let id = node.node.getChild(\"VariableDefinition\");\n if (id)\n def(id, type);\n return true;\n };\n}\nconst functionContext = [\"FunctionDeclaration\"];\nconst gatherCompletions = {\n FunctionDeclaration: /*@__PURE__*/defID(\"function\"),\n ClassDeclaration: /*@__PURE__*/defID(\"class\"),\n ClassExpression: () => true,\n EnumDeclaration: /*@__PURE__*/defID(\"constant\"),\n TypeAliasDeclaration: /*@__PURE__*/defID(\"type\"),\n NamespaceDeclaration: /*@__PURE__*/defID(\"namespace\"),\n VariableDefinition(node, def) { if (!node.matchContext(functionContext))\n def(node, \"variable\"); },\n TypeDefinition(node, def) { def(node, \"type\"); },\n __proto__: null\n};\nfunction getScope(doc, node) {\n let cached = cache.get(node);\n if (cached)\n return cached;\n let completions = [], top = true;\n function def(node, type) {\n let name = doc.sliceString(node.from, node.to);\n completions.push({ label: name, type });\n }\n node.cursor(IterMode.IncludeAnonymous).iterate(node => {\n if (top) {\n top = false;\n }\n else if (node.name) {\n let gather = gatherCompletions[node.name];\n if (gather && gather(node, def) || ScopeNodes.has(node.name))\n return false;\n }\n else if (node.to - node.from > 8192) {\n // Allow caching for bigger internal nodes\n for (let c of getScope(doc, node.node))\n completions.push(c);\n return false;\n }\n });\n cache.set(node, completions);\n return completions;\n}\nconst Identifier = /^[\\w$\\xa1-\\uffff][\\w$\\d\\xa1-\\uffff]*$/;\nconst dontComplete = [\n \"TemplateString\", \"String\", \"RegExp\",\n \"LineComment\", \"BlockComment\",\n \"VariableDefinition\", \"TypeDefinition\", \"Label\",\n \"PropertyDefinition\", \"PropertyName\",\n \"PrivatePropertyDefinition\", \"PrivatePropertyName\",\n \".\", \"?.\"\n];\n/**\nCompletion source that looks up locally defined names in\nJavaScript code.\n*/\nfunction localCompletionSource(context) {\n let inner = syntaxTree(context.state).resolveInner(context.pos, -1);\n if (dontComplete.indexOf(inner.name) > -1)\n return null;\n let isWord = inner.name == \"VariableName\" ||\n inner.to - inner.from < 20 && Identifier.test(context.state.sliceDoc(inner.from, inner.to));\n if (!isWord && !context.explicit)\n return null;\n let options = [];\n for (let pos = inner; pos; pos = pos.parent) {\n if (ScopeNodes.has(pos.name))\n options = options.concat(getScope(context.state.doc, pos));\n }\n return {\n options,\n from: isWord ? inner.from : context.pos,\n validFor: Identifier\n };\n}\nfunction pathFor(read, member, name) {\n var _a;\n let path = [];\n for (;;) {\n let obj = member.firstChild, prop;\n if ((obj === null || obj === void 0 ? void 0 : obj.name) == \"VariableName\") {\n path.push(read(obj));\n return { path: path.reverse(), name };\n }\n else if ((obj === null || obj === void 0 ? void 0 : obj.name) == \"MemberExpression\" && ((_a = (prop = obj.lastChild)) === null || _a === void 0 ? void 0 : _a.name) == \"PropertyName\") {\n path.push(read(prop));\n member = obj;\n }\n else {\n return null;\n }\n }\n}\n/**\nHelper function for defining JavaScript completion sources. It\nreturns the completable name and object path for a completion\ncontext, or null if no name/property completion should happen at\nthat position. For example, when completing after `a.b.c` it will\nreturn `{path: [\"a\", \"b\"], name: \"c\"}`. When completing after `x`\nit will return `{path: [], name: \"x\"}`. When not in a property or\nname, it will return null if `context.explicit` is false, and\n`{path: [], name: \"\"}` otherwise.\n*/\nfunction completionPath(context) {\n let read = (node) => context.state.doc.sliceString(node.from, node.to);\n let inner = syntaxTree(context.state).resolveInner(context.pos, -1);\n if (inner.name == \"PropertyName\") {\n return pathFor(read, inner.parent, read(inner));\n }\n else if ((inner.name == \".\" || inner.name == \"?.\") && inner.parent.name == \"MemberExpression\") {\n return pathFor(read, inner.parent, \"\");\n }\n else if (dontComplete.indexOf(inner.name) > -1) {\n return null;\n }\n else if (inner.name == \"VariableName\" || inner.to - inner.from < 20 && Identifier.test(read(inner))) {\n return { path: [], name: read(inner) };\n }\n else if (inner.name == \"MemberExpression\") {\n return pathFor(read, inner, \"\");\n }\n else {\n return context.explicit ? { path: [], name: \"\" } : null;\n }\n}\nfunction enumeratePropertyCompletions(obj, top) {\n let options = [], seen = new Set;\n for (let depth = 0;; depth++) {\n for (let name of (Object.getOwnPropertyNames || Object.keys)(obj)) {\n if (!/^[a-zA-Z_$\\xaa-\\uffdc][\\w$\\xaa-\\uffdc]*$/.test(name) || seen.has(name))\n continue;\n seen.add(name);\n let value;\n try {\n value = obj[name];\n }\n catch (_) {\n continue;\n }\n options.push({\n label: name,\n type: typeof value == \"function\" ? (/^[A-Z]/.test(name) ? \"class\" : top ? \"function\" : \"method\")\n : top ? \"variable\" : \"property\",\n boost: -depth\n });\n }\n let next = Object.getPrototypeOf(obj);\n if (!next)\n return options;\n obj = next;\n }\n}\n/**\nDefines a [completion source](https://codemirror.net/6/docs/ref/#autocomplete.CompletionSource) that\ncompletes from the given scope object (for example `globalThis`).\nWill enter properties of the object when completing properties on\na directly-named path.\n*/\nfunction scopeCompletionSource(scope) {\n let cache = new Map;\n return (context) => {\n let path = completionPath(context);\n if (!path)\n return null;\n let target = scope;\n for (let step of path.path) {\n target = target[step];\n if (!target)\n return null;\n }\n let options = cache.get(target);\n if (!options)\n cache.set(target, options = enumeratePropertyCompletions(target, !path.path.length));\n return {\n from: context.pos - path.name.length,\n options,\n validFor: Identifier\n };\n };\n}\n\n/**\nA language provider based on the [Lezer JavaScript\nparser](https://github.com/lezer-parser/javascript), extended with\nhighlighting and indentation information.\n*/\nconst javascriptLanguage = /*@__PURE__*/LRLanguage.define({\n name: \"javascript\",\n parser: /*@__PURE__*/parser.configure({\n props: [\n /*@__PURE__*/indentNodeProp.add({\n IfStatement: /*@__PURE__*/continuedIndent({ except: /^\\s*({|else\\b)/ }),\n TryStatement: /*@__PURE__*/continuedIndent({ except: /^\\s*({|catch\\b|finally\\b)/ }),\n LabeledStatement: flatIndent,\n SwitchBody: context => {\n let after = context.textAfter, closed = /^\\s*\\}/.test(after), isCase = /^\\s*(case|default)\\b/.test(after);\n return context.baseIndent + (closed ? 0 : isCase ? 1 : 2) * context.unit;\n },\n Block: /*@__PURE__*/delimitedIndent({ closing: \"}\" }),\n ArrowFunction: cx => cx.baseIndent + cx.unit,\n \"TemplateString BlockComment\": () => null,\n \"Statement Property\": /*@__PURE__*/continuedIndent({ except: /^{/ }),\n JSXElement(context) {\n let closed = /^\\s*<\\//.test(context.textAfter);\n return context.lineIndent(context.node.from) + (closed ? 0 : context.unit);\n },\n JSXEscape(context) {\n let closed = /\\s*\\}/.test(context.textAfter);\n return context.lineIndent(context.node.from) + (closed ? 0 : context.unit);\n },\n \"JSXOpenTag JSXSelfClosingTag\"(context) {\n return context.column(context.node.from) + context.unit;\n }\n }),\n /*@__PURE__*/foldNodeProp.add({\n \"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType\": foldInside,\n BlockComment(tree) { return { from: tree.from + 2, to: tree.to - 2 }; }\n })\n ]\n }),\n languageData: {\n closeBrackets: { brackets: [\"(\", \"[\", \"{\", \"'\", '\"', \"`\"] },\n commentTokens: { line: \"//\", block: { open: \"/*\", close: \"*/\" } },\n indentOnInput: /^\\s*(?:case |default:|\\{|\\}|<\\/)$/,\n wordChars: \"$\"\n }\n});\nconst jsxSublanguage = {\n test: node => /^JSX/.test(node.name),\n facet: /*@__PURE__*/defineLanguageFacet({ commentTokens: { block: { open: \"{/*\", close: \"*/}\" } } })\n};\n/**\nA language provider for TypeScript.\n*/\nconst typescriptLanguage = /*@__PURE__*/javascriptLanguage.configure({ dialect: \"ts\" }, \"typescript\");\n/**\nLanguage provider for JSX.\n*/\nconst jsxLanguage = /*@__PURE__*/javascriptLanguage.configure({\n dialect: \"jsx\",\n props: [/*@__PURE__*/sublanguageProp.add(n => n.isTop ? [jsxSublanguage] : undefined)]\n});\n/**\nLanguage provider for JSX + TypeScript.\n*/\nconst tsxLanguage = /*@__PURE__*/javascriptLanguage.configure({\n dialect: \"jsx ts\",\n props: [/*@__PURE__*/sublanguageProp.add(n => n.isTop ? [jsxSublanguage] : undefined)]\n}, \"typescript\");\nlet kwCompletion = (name) => ({ label: name, type: \"keyword\" });\nconst keywords = /*@__PURE__*/\"break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield\".split(\" \").map(kwCompletion);\nconst typescriptKeywords = /*@__PURE__*/keywords.concat(/*@__PURE__*/[\"declare\", \"implements\", \"private\", \"protected\", \"public\"].map(kwCompletion));\n/**\nJavaScript support. Includes [snippet](https://codemirror.net/6/docs/ref/#lang-javascript.snippets)\ncompletion.\n*/\nfunction javascript(config = {}) {\n let lang = config.jsx ? (config.typescript ? tsxLanguage : jsxLanguage)\n : config.typescript ? typescriptLanguage : javascriptLanguage;\n let completions = config.typescript ? typescriptSnippets.concat(typescriptKeywords) : snippets.concat(keywords);\n return new LanguageSupport(lang, [\n javascriptLanguage.data.of({\n autocomplete: ifNotIn(dontComplete, completeFromList(completions))\n }),\n javascriptLanguage.data.of({\n autocomplete: localCompletionSource\n }),\n config.jsx ? autoCloseTags : [],\n ]);\n}\nfunction findOpenTag(node) {\n for (;;) {\n if (node.name == \"JSXOpenTag\" || node.name == \"JSXSelfClosingTag\" || node.name == \"JSXFragmentTag\")\n return node;\n if (node.name == \"JSXEscape\" || !node.parent)\n return null;\n node = node.parent;\n }\n}\nfunction elementName(doc, tree, max = doc.length) {\n for (let ch = tree === null || tree === void 0 ? void 0 : tree.firstChild; ch; ch = ch.nextSibling) {\n if (ch.name == \"JSXIdentifier\" || ch.name == \"JSXBuiltin\" || ch.name == \"JSXNamespacedName\" ||\n ch.name == \"JSXMemberExpression\")\n return doc.sliceString(ch.from, Math.min(ch.to, max));\n }\n return \"\";\n}\nconst android = typeof navigator == \"object\" && /*@__PURE__*//Android\\b/.test(navigator.userAgent);\n/**\nExtension that will automatically insert JSX close tags when a `>` or\n`/` is typed.\n*/\nconst autoCloseTags = /*@__PURE__*/EditorView.inputHandler.of((view, from, to, text, defaultInsert) => {\n if ((android ? view.composing : view.compositionStarted) || view.state.readOnly ||\n from != to || (text != \">\" && text != \"/\") ||\n !javascriptLanguage.isActiveAt(view.state, from, -1))\n return false;\n let base = defaultInsert(), { state } = base;\n let closeTags = state.changeByRange(range => {\n var _a;\n let { head } = range, around = syntaxTree(state).resolveInner(head - 1, -1), name;\n if (around.name == \"JSXStartTag\")\n around = around.parent;\n if (state.doc.sliceString(head - 1, head) != text || around.name == \"JSXAttributeValue\" && around.to > head) ;\n else if (text == \">\" && around.name == \"JSXFragmentTag\") {\n return { range, changes: { from: head, insert: `</>` } };\n }\n else if (text == \"/\" && around.name == \"JSXStartCloseTag\") {\n let empty = around.parent, base = empty.parent;\n if (base && empty.from == head - 2 &&\n ((name = elementName(state.doc, base.firstChild, head)) || ((_a = base.firstChild) === null || _a === void 0 ? void 0 : _a.name) == \"JSXFragmentTag\")) {\n let insert = `${name}>`;\n return { range: EditorSelection.cursor(head + insert.length, -1), changes: { from: head, insert } };\n }\n }\n else if (text == \">\") {\n let openTag = findOpenTag(around);\n if (openTag &&\n !/^\\/?>|^<\\//.test(state.doc.sliceString(head, head + 2)) &&\n (name = elementName(state.doc, openTag, head)))\n return { range, changes: { from: head, insert: `</${name}>` } };\n }\n return { range };\n });\n if (closeTags.changes.empty)\n return false;\n view.dispatch([\n base,\n state.update(closeTags, { userEvent: \"input.complete\", scrollIntoView: true })\n ]);\n return true;\n});\n\n/**\nConnects an [ESLint](https://eslint.org/) linter to CodeMirror's\n[lint](https://codemirror.net/6/docs/ref/#lint) integration. `eslint` should be an instance of the\n[`Linter`](https://eslint.org/docs/developer-guide/nodejs-api#linter)\nclass, and `config` an optional ESLint configuration. The return\nvalue of this function can be passed to [`linter`](https://codemirror.net/6/docs/ref/#lint.linter)\nto create a JavaScript linting extension.\n\nNote that ESLint targets node, and is tricky to run in the\nbrowser. The\n[eslint-linter-browserify](https://github.com/UziTech/eslint-linter-browserify)\npackage may help with that (see\n[example](https://github.com/UziTech/eslint-linter-browserify/blob/master/example/script.js)).\n*/\nfunction esLint(eslint, config) {\n if (!config) {\n config = {\n parserOptions: { ecmaVersion: 2019, sourceType: \"module\" },\n env: { browser: true, node: true, es6: true, es2015: true, es2017: true, es2020: true },\n rules: {}\n };\n eslint.getRules().forEach((desc, name) => {\n if (desc.meta.docs.recommended)\n config.rules[name] = 2;\n });\n }\n return (view) => {\n let { state } = view, found = [];\n for (let { from, to } of javascriptLanguage.findRegions(state)) {\n let fromLine = state.doc.lineAt(from), offset = { line: fromLine.number - 1, col: from - fromLine.from, pos: from };\n for (let d of eslint.verify(state.sliceDoc(from, to), config))\n found.push(translateDiagnostic(d, state.doc, offset));\n }\n return found;\n };\n}\nfunction mapPos(line, col, doc, offset) {\n return doc.line(line + offset.line).from + col + (line == 1 ? offset.col - 1 : -1);\n}\nfunction translateDiagnostic(input, doc, offset) {\n let start = mapPos(input.line, input.column, doc, offset);\n let result = {\n from: start,\n to: input.endLine != null && input.endColumn != 1 ? mapPos(input.endLine, input.endColumn, doc, offset) : start,\n message: input.message,\n source: input.ruleId ? \"eslint:\" + input.ruleId : \"eslint\",\n severity: input.severity == 1 ? \"warning\" : \"error\",\n };\n if (input.fix) {\n let { range, text } = input.fix, from = range[0] + offset.pos - start, to = range[1] + offset.pos - start;\n result.actions = [{\n name: \"fix\",\n apply(view, start) {\n view.dispatch({ changes: { from: start + from, to: start + to, insert: text }, scrollIntoView: true });\n }\n }];\n }\n return result;\n}\n\nexport { autoCloseTags, completionPath, esLint, javascript, javascriptLanguage, jsxLanguage, localCompletionSource, scopeCompletionSource, snippets, tsxLanguage, typescriptLanguage, typescriptSnippets };\n", "import { parser, configureNesting } from '@lezer/html';\nimport { cssLanguage, css } from '@codemirror/lang-css';\nimport { javascriptLanguage, typescriptLanguage, jsxLanguage, tsxLanguage, javascript } from '@codemirror/lang-javascript';\nimport { EditorView } from '@codemirror/view';\nimport { EditorSelection } from '@codemirror/state';\nimport { syntaxTree, LRLanguage, indentNodeProp, foldNodeProp, bracketMatchingHandle, LanguageSupport } from '@codemirror/language';\n\nconst Targets = [\"_blank\", \"_self\", \"_top\", \"_parent\"];\nconst Charsets = [\"ascii\", \"utf-8\", \"utf-16\", \"latin1\", \"latin1\"];\nconst Methods = [\"get\", \"post\", \"put\", \"delete\"];\nconst Encs = [\"application/x-www-form-urlencoded\", \"multipart/form-data\", \"text/plain\"];\nconst Bool = [\"true\", \"false\"];\nconst S = {}; // Empty tag spec\nconst Tags = {\n a: {\n attrs: {\n href: null, ping: null, type: null,\n media: null,\n target: Targets,\n hreflang: null\n }\n },\n abbr: S,\n address: S,\n area: {\n attrs: {\n alt: null, coords: null, href: null, target: null, ping: null,\n media: null, hreflang: null, type: null,\n shape: [\"default\", \"rect\", \"circle\", \"poly\"]\n }\n },\n article: S,\n aside: S,\n audio: {\n attrs: {\n src: null, mediagroup: null,\n crossorigin: [\"anonymous\", \"use-credentials\"],\n preload: [\"none\", \"metadata\", \"auto\"],\n autoplay: [\"autoplay\"],\n loop: [\"loop\"],\n controls: [\"controls\"]\n }\n },\n b: S,\n base: { attrs: { href: null, target: Targets } },\n bdi: S,\n bdo: S,\n blockquote: { attrs: { cite: null } },\n body: S,\n br: S,\n button: {\n attrs: {\n form: null, formaction: null, name: null, value: null,\n autofocus: [\"autofocus\"],\n disabled: [\"autofocus\"],\n formenctype: Encs,\n formmethod: Methods,\n formnovalidate: [\"novalidate\"],\n formtarget: Targets,\n type: [\"submit\", \"reset\", \"button\"]\n }\n },\n canvas: { attrs: { width: null, height: null } },\n caption: S,\n center: S,\n cite: S,\n code: S,\n col: { attrs: { span: null } },\n colgroup: { attrs: { span: null } },\n command: {\n attrs: {\n type: [\"command\", \"checkbox\", \"radio\"],\n label: null, icon: null, radiogroup: null, command: null, title: null,\n disabled: [\"disabled\"],\n checked: [\"checked\"]\n }\n },\n data: { attrs: { value: null } },\n datagrid: { attrs: { disabled: [\"disabled\"], multiple: [\"multiple\"] } },\n datalist: { attrs: { data: null } },\n dd: S,\n del: { attrs: { cite: null, datetime: null } },\n details: { attrs: { open: [\"open\"] } },\n dfn: S,\n div: S,\n dl: S,\n dt: S,\n em: S,\n embed: { attrs: { src: null, type: null, width: null, height: null } },\n eventsource: { attrs: { src: null } },\n fieldset: { attrs: { disabled: [\"disabled\"], form: null, name: null } },\n figcaption: S,\n figure: S,\n footer: S,\n form: {\n attrs: {\n action: null, name: null,\n \"accept-charset\": Charsets,\n autocomplete: [\"on\", \"off\"],\n enctype: Encs,\n method: Methods,\n novalidate: [\"novalidate\"],\n target: Targets\n }\n },\n h1: S, h2: S, h3: S, h4: S, h5: S, h6: S,\n head: {\n children: [\"title\", \"base\", \"link\", \"style\", \"meta\", \"script\", \"noscript\", \"command\"]\n },\n header: S,\n hgroup: S,\n hr: S,\n html: {\n attrs: { manifest: null }\n },\n i: S,\n iframe: {\n attrs: {\n src: null, srcdoc: null, name: null, width: null, height: null,\n sandbox: [\"allow-top-navigation\", \"allow-same-origin\", \"allow-forms\", \"allow-scripts\"],\n seamless: [\"seamless\"]\n }\n },\n img: {\n attrs: {\n alt: null, src: null, ismap: null, usemap: null, width: null, height: null,\n crossorigin: [\"anonymous\", \"use-credentials\"]\n }\n },\n input: {\n attrs: {\n alt: null, dirname: null, form: null, formaction: null,\n height: null, list: null, max: null, maxlength: null, min: null,\n name: null, pattern: null, placeholder: null, size: null, src: null,\n step: null, value: null, width: null,\n accept: [\"audio/*\", \"video/*\", \"image/*\"],\n autocomplete: [\"on\", \"off\"],\n autofocus: [\"autofocus\"],\n checked: [\"checked\"],\n disabled: [\"disabled\"],\n formenctype: Encs,\n formmethod: Methods,\n formnovalidate: [\"novalidate\"],\n formtarget: Targets,\n multiple: [\"multiple\"],\n readonly: [\"readonly\"],\n required: [\"required\"],\n type: [\"hidden\", \"text\", \"search\", \"tel\", \"url\", \"email\", \"password\", \"datetime\", \"date\", \"month\",\n \"week\", \"time\", \"datetime-local\", \"number\", \"range\", \"color\", \"checkbox\", \"radio\",\n \"file\", \"submit\", \"image\", \"reset\", \"button\"]\n }\n },\n ins: { attrs: { cite: null, datetime: null } },\n kbd: S,\n keygen: {\n attrs: {\n challenge: null, form: null, name: null,\n autofocus: [\"autofocus\"],\n disabled: [\"disabled\"],\n keytype: [\"RSA\"]\n }\n },\n label: { attrs: { for: null, form: null } },\n legend: S,\n li: { attrs: { value: null } },\n link: {\n attrs: {\n href: null, type: null,\n hreflang: null,\n media: null,\n sizes: [\"all\", \"16x16\", \"16x16 32x32\", \"16x16 32x32 64x64\"]\n }\n },\n map: { attrs: { name: null } },\n mark: S,\n menu: { attrs: { label: null, type: [\"list\", \"context\", \"toolbar\"] } },\n meta: {\n attrs: {\n content: null,\n charset: Charsets,\n name: [\"viewport\", \"application-name\", \"author\", \"description\", \"generator\", \"keywords\"],\n \"http-equiv\": [\"content-language\", \"content-type\", \"default-style\", \"refresh\"]\n }\n },\n meter: { attrs: { value: null, min: null, low: null, high: null, max: null, optimum: null } },\n nav: S,\n noscript: S,\n object: {\n attrs: {\n data: null, type: null, name: null, usemap: null, form: null, width: null, height: null,\n typemustmatch: [\"typemustmatch\"]\n }\n },\n ol: { attrs: { reversed: [\"reversed\"], start: null, type: [\"1\", \"a\", \"A\", \"i\", \"I\"] },\n children: [\"li\", \"script\", \"template\", \"ul\", \"ol\"] },\n optgroup: { attrs: { disabled: [\"disabled\"], label: null } },\n option: { attrs: { disabled: [\"disabled\"], label: null, selected: [\"selected\"], value: null } },\n output: { attrs: { for: null, form: null, name: null } },\n p: S,\n param: { attrs: { name: null, value: null } },\n pre: S,\n progress: { attrs: { value: null, max: null } },\n q: { attrs: { cite: null } },\n rp: S,\n rt: S,\n ruby: S,\n samp: S,\n script: {\n attrs: {\n type: [\"text/javascript\"],\n src: null,\n async: [\"async\"],\n defer: [\"defer\"],\n charset: Charsets\n }\n },\n section: S,\n select: {\n attrs: {\n form: null, name: null, size: null,\n autofocus: [\"autofocus\"],\n disabled: [\"disabled\"],\n multiple: [\"multiple\"]\n }\n },\n slot: { attrs: { name: null } },\n small: S,\n source: { attrs: { src: null, type: null, media: null } },\n span: S,\n strong: S,\n style: {\n attrs: {\n type: [\"text/css\"],\n media: null,\n scoped: null\n }\n },\n sub: S,\n summary: S,\n sup: S,\n table: S,\n tbody: S,\n td: { attrs: { colspan: null, rowspan: null, headers: null } },\n template: S,\n textarea: {\n attrs: {\n dirname: null, form: null, maxlength: null, name: null, placeholder: null,\n rows: null, cols: null,\n autofocus: [\"autofocus\"],\n disabled: [\"disabled\"],\n readonly: [\"readonly\"],\n required: [\"required\"],\n wrap: [\"soft\", \"hard\"]\n }\n },\n tfoot: S,\n th: { attrs: { colspan: null, rowspan: null, headers: null, scope: [\"row\", \"col\", \"rowgroup\", \"colgroup\"] } },\n thead: S,\n time: { attrs: { datetime: null } },\n title: S,\n tr: S,\n track: {\n attrs: {\n src: null, label: null, default: null,\n kind: [\"subtitles\", \"captions\", \"descriptions\", \"chapters\", \"metadata\"],\n srclang: null\n }\n },\n ul: { children: [\"li\", \"script\", \"template\", \"ul\", \"ol\"] },\n var: S,\n video: {\n attrs: {\n src: null, poster: null, width: null, height: null,\n crossorigin: [\"anonymous\", \"use-credentials\"],\n preload: [\"auto\", \"metadata\", \"none\"],\n autoplay: [\"autoplay\"],\n mediagroup: [\"movie\"],\n muted: [\"muted\"],\n controls: [\"controls\"]\n }\n },\n wbr: S\n};\nconst GlobalAttrs = {\n accesskey: null,\n class: null,\n contenteditable: Bool,\n contextmenu: null,\n dir: [\"ltr\", \"rtl\", \"auto\"],\n draggable: [\"true\", \"false\", \"auto\"],\n dropzone: [\"copy\", \"move\", \"link\", \"string:\", \"file:\"],\n hidden: [\"hidden\"],\n id: null,\n inert: [\"inert\"],\n itemid: null,\n itemprop: null,\n itemref: null,\n itemscope: [\"itemscope\"],\n itemtype: null,\n lang: [\"ar\", \"bn\", \"de\", \"en-GB\", \"en-US\", \"es\", \"fr\", \"hi\", \"id\", \"ja\", \"pa\", \"pt\", \"ru\", \"tr\", \"zh\"],\n spellcheck: Bool,\n autocorrect: Bool,\n autocapitalize: Bool,\n style: null,\n tabindex: null,\n title: null,\n translate: [\"yes\", \"no\"],\n rel: [\"stylesheet\", \"alternate\", \"author\", \"bookmark\", \"help\", \"license\", \"next\", \"nofollow\", \"noreferrer\", \"prefetch\", \"prev\", \"search\", \"tag\"],\n role: /*@__PURE__*/\"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer\".split(\" \"),\n \"aria-activedescendant\": null,\n \"aria-atomic\": Bool,\n \"aria-autocomplete\": [\"inline\", \"list\", \"both\", \"none\"],\n \"aria-busy\": Bool,\n \"aria-checked\": [\"true\", \"false\", \"mixed\", \"undefined\"],\n \"aria-controls\": null,\n \"aria-describedby\": null,\n \"aria-disabled\": Bool,\n \"aria-dropeffect\": null,\n \"aria-expanded\": [\"true\", \"false\", \"undefined\"],\n \"aria-flowto\": null,\n \"aria-grabbed\": [\"true\", \"false\", \"undefined\"],\n \"aria-haspopup\": Bool,\n \"aria-hidden\": Bool,\n \"aria-invalid\": [\"true\", \"false\", \"grammar\", \"spelling\"],\n \"aria-label\": null,\n \"aria-labelledby\": null,\n \"aria-level\": null,\n \"aria-live\": [\"off\", \"polite\", \"assertive\"],\n \"aria-multiline\": Bool,\n \"aria-multiselectable\": Bool,\n \"aria-owns\": null,\n \"aria-posinset\": null,\n \"aria-pressed\": [\"true\", \"false\", \"mixed\", \"undefined\"],\n \"aria-readonly\": Bool,\n \"aria-relevant\": null,\n \"aria-required\": Bool,\n \"aria-selected\": [\"true\", \"false\", \"undefined\"],\n \"aria-setsize\": null,\n \"aria-sort\": [\"ascending\", \"descending\", \"none\", \"other\"],\n \"aria-valuemax\": null,\n \"aria-valuemin\": null,\n \"aria-valuenow\": null,\n \"aria-valuetext\": null\n};\nconst eventAttributes = /*@__PURE__*/(\"beforeunload copy cut dragstart dragover dragleave dragenter dragend \" +\n \"drag paste focus blur change click load mousedown mouseenter mouseleave \" +\n \"mouseup keydown keyup resize scroll unload\").split(\" \").map(n => \"on\" + n);\nfor (let a of eventAttributes)\n GlobalAttrs[a] = null;\nclass Schema {\n constructor(extraTags, extraAttrs) {\n this.tags = Object.assign(Object.assign({}, Tags), extraTags);\n this.globalAttrs = Object.assign(Object.assign({}, GlobalAttrs), extraAttrs);\n this.allTags = Object.keys(this.tags);\n this.globalAttrNames = Object.keys(this.globalAttrs);\n }\n}\nSchema.default = /*@__PURE__*/new Schema;\nfunction elementName(doc, tree, max = doc.length) {\n if (!tree)\n return \"\";\n let tag = tree.firstChild;\n let name = tag && tag.getChild(\"TagName\");\n return name ? doc.sliceString(name.from, Math.min(name.to, max)) : \"\";\n}\nfunction findParentElement(tree, skip = false) {\n for (; tree; tree = tree.parent)\n if (tree.name == \"Element\") {\n if (skip)\n skip = false;\n else\n return tree;\n }\n return null;\n}\nfunction allowedChildren(doc, tree, schema) {\n let parentInfo = schema.tags[elementName(doc, findParentElement(tree))];\n return (parentInfo === null || parentInfo === void 0 ? void 0 : parentInfo.children) || schema.allTags;\n}\nfunction openTags(doc, tree) {\n let open = [];\n for (let parent = findParentElement(tree); parent && !parent.type.isTop; parent = findParentElement(parent.parent)) {\n let tagName = elementName(doc, parent);\n if (tagName && parent.lastChild.name == \"CloseTag\")\n break;\n if (tagName && open.indexOf(tagName) < 0 && (tree.name == \"EndTag\" || tree.from >= parent.firstChild.to))\n open.push(tagName);\n }\n return open;\n}\nconst identifier = /^[:\\-\\.\\w\\u00b7-\\uffff]*$/;\nfunction completeTag(state, schema, tree, from, to) {\n let end = /\\s*>/.test(state.sliceDoc(to, to + 5)) ? \"\" : \">\";\n let parent = findParentElement(tree, true);\n return { from, to,\n options: allowedChildren(state.doc, parent, schema).map(tagName => ({ label: tagName, type: \"type\" })).concat(openTags(state.doc, tree).map((tag, i) => ({ label: \"/\" + tag, apply: \"/\" + tag + end,\n type: \"type\", boost: 99 - i }))),\n validFor: /^\\/?[:\\-\\.\\w\\u00b7-\\uffff]*$/ };\n}\nfunction completeCloseTag(state, tree, from, to) {\n let end = /\\s*>/.test(state.sliceDoc(to, to + 5)) ? \"\" : \">\";\n return { from, to,\n options: openTags(state.doc, tree).map((tag, i) => ({ label: tag, apply: tag + end, type: \"type\", boost: 99 - i })),\n validFor: identifier };\n}\nfunction completeStartTag(state, schema, tree, pos) {\n let options = [], level = 0;\n for (let tagName of allowedChildren(state.doc, tree, schema))\n options.push({ label: \"<\" + tagName, type: \"type\" });\n for (let open of openTags(state.doc, tree))\n options.push({ label: \"</\" + open + \">\", type: \"type\", boost: 99 - level++ });\n return { from: pos, to: pos, options, validFor: /^<\\/?[:\\-\\.\\w\\u00b7-\\uffff]*$/ };\n}\nfunction completeAttrName(state, schema, tree, from, to) {\n let elt = findParentElement(tree), info = elt ? schema.tags[elementName(state.doc, elt)] : null;\n let localAttrs = info && info.attrs ? Object.keys(info.attrs) : [];\n let names = info && info.globalAttrs === false ? localAttrs\n : localAttrs.length ? localAttrs.concat(schema.globalAttrNames) : schema.globalAttrNames;\n return { from, to,\n options: names.map(attrName => ({ label: attrName, type: \"property\" })),\n validFor: identifier };\n}\nfunction completeAttrValue(state, schema, tree, from, to) {\n var _a;\n let nameNode = (_a = tree.parent) === null || _a === void 0 ? void 0 : _a.getChild(\"AttributeName\");\n let options = [], token = undefined;\n if (nameNode) {\n let attrName = state.sliceDoc(nameNode.from, nameNode.to);\n let attrs = schema.globalAttrs[attrName];\n if (!attrs) {\n let elt = findParentElement(tree), info = elt ? schema.tags[elementName(state.doc, elt)] : null;\n attrs = (info === null || info === void 0 ? void 0 : info.attrs) && info.attrs[attrName];\n }\n if (attrs) {\n let base = state.sliceDoc(from, to).toLowerCase(), quoteStart = '\"', quoteEnd = '\"';\n if (/^['\"]/.test(base)) {\n token = base[0] == '\"' ? /^[^\"]*$/ : /^[^']*$/;\n quoteStart = \"\";\n quoteEnd = state.sliceDoc(to, to + 1) == base[0] ? \"\" : base[0];\n base = base.slice(1);\n from++;\n }\n else {\n token = /^[^\\s<>='\"]*$/;\n }\n for (let value of attrs)\n options.push({ label: value, apply: quoteStart + value + quoteEnd, type: \"constant\" });\n }\n }\n return { from, to, options, validFor: token };\n}\nfunction htmlCompletionFor(schema, context) {\n let { state, pos } = context, tree = syntaxTree(state).resolveInner(pos, -1), around = tree.resolve(pos);\n for (let scan = pos, before; around == tree && (before = tree.childBefore(scan));) {\n let last = before.lastChild;\n if (!last || !last.type.isError || last.from < last.to)\n break;\n around = tree = before;\n scan = last.from;\n }\n if (tree.name == \"TagName\") {\n return tree.parent && /CloseTag$/.test(tree.parent.name) ? completeCloseTag(state, tree, tree.from, pos)\n : completeTag(state, schema, tree, tree.from, pos);\n }\n else if (tree.name == \"StartTag\") {\n return completeTag(state, schema, tree, pos, pos);\n }\n else if (tree.name == \"StartCloseTag\" || tree.name == \"IncompleteCloseTag\") {\n return completeCloseTag(state, tree, pos, pos);\n }\n else if (tree.name == \"OpenTag\" || tree.name == \"SelfClosingTag\" || tree.name == \"AttributeName\") {\n return completeAttrName(state, schema, tree, tree.name == \"AttributeName\" ? tree.from : pos, pos);\n }\n else if (tree.name == \"Is\" || tree.name == \"AttributeValue\" || tree.name == \"UnquotedAttributeValue\") {\n return completeAttrValue(state, schema, tree, tree.name == \"Is\" ? pos : tree.from, pos);\n }\n else if (context.explicit && (around.name == \"Element\" || around.name == \"Text\" || around.name == \"Document\")) {\n return completeStartTag(state, schema, tree, pos);\n }\n else {\n return null;\n }\n}\n/**\nHTML tag completion. Opens and closes tags and attributes in a\ncontext-aware way.\n*/\nfunction htmlCompletionSource(context) {\n return htmlCompletionFor(Schema.default, context);\n}\n/**\nCreate a completion source for HTML extended with additional tags\nor attributes.\n*/\nfunction htmlCompletionSourceWith(config) {\n let { extraTags, extraGlobalAttributes: extraAttrs } = config;\n let schema = extraAttrs || extraTags ? new Schema(extraTags, extraAttrs) : Schema.default;\n return (context) => htmlCompletionFor(schema, context);\n}\n\nconst jsonParser = /*@__PURE__*/javascriptLanguage.parser.configure({ top: \"SingleExpression\" });\nconst defaultNesting = [\n { tag: \"script\",\n attrs: attrs => attrs.type == \"text/typescript\" || attrs.lang == \"ts\",\n parser: typescriptLanguage.parser },\n { tag: \"script\",\n attrs: attrs => attrs.type == \"text/babel\" || attrs.type == \"text/jsx\",\n parser: jsxLanguage.parser },\n { tag: \"script\",\n attrs: attrs => attrs.type == \"text/typescript-jsx\",\n parser: tsxLanguage.parser },\n { tag: \"script\",\n attrs(attrs) {\n return /^(importmap|speculationrules|application\\/(.+\\+)?json)$/i.test(attrs.type);\n },\n parser: jsonParser },\n { tag: \"script\",\n attrs(attrs) {\n return !attrs.type || /^(?:text|application)\\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(attrs.type);\n },\n parser: javascriptLanguage.parser },\n { tag: \"style\",\n attrs(attrs) {\n return (!attrs.lang || attrs.lang == \"css\") && (!attrs.type || /^(text\\/)?(x-)?(stylesheet|css)$/i.test(attrs.type));\n },\n parser: cssLanguage.parser }\n];\nconst defaultAttrs = /*@__PURE__*/[\n { name: \"style\",\n parser: /*@__PURE__*/cssLanguage.parser.configure({ top: \"Styles\" }) }\n].concat(/*@__PURE__*/eventAttributes.map(name => ({ name, parser: javascriptLanguage.parser })));\n/**\nA language provider based on the [Lezer HTML\nparser](https://github.com/lezer-parser/html), extended with the\nJavaScript and CSS parsers to parse the content of `<script>` and\n`<style>` tags.\n*/\nconst htmlPlain = /*@__PURE__*/LRLanguage.define({\n name: \"html\",\n parser: /*@__PURE__*/parser.configure({\n props: [\n /*@__PURE__*/indentNodeProp.add({\n Element(context) {\n let after = /^(\\s*)(<\\/)?/.exec(context.textAfter);\n if (context.node.to <= context.pos + after[0].length)\n return context.continue();\n return context.lineIndent(context.node.from) + (after[2] ? 0 : context.unit);\n },\n \"OpenTag CloseTag SelfClosingTag\"(context) {\n return context.column(context.node.from) + context.unit;\n },\n Document(context) {\n if (context.pos + /\\s*/.exec(context.textAfter)[0].length < context.node.to)\n return context.continue();\n let endElt = null, close;\n for (let cur = context.node;;) {\n let last = cur.lastChild;\n if (!last || last.name != \"Element\" || last.to != cur.to)\n break;\n endElt = cur = last;\n }\n if (endElt && !((close = endElt.lastChild) && (close.name == \"CloseTag\" || close.name == \"SelfClosingTag\")))\n return context.lineIndent(endElt.from) + context.unit;\n return null;\n }\n }),\n /*@__PURE__*/foldNodeProp.add({\n Element(node) {\n let first = node.firstChild, last = node.lastChild;\n if (!first || first.name != \"OpenTag\")\n return null;\n return { from: first.to, to: last.name == \"CloseTag\" ? last.from : node.to };\n }\n }),\n /*@__PURE__*/bracketMatchingHandle.add({\n \"OpenTag CloseTag\": node => node.getChild(\"TagName\")\n })\n ]\n }),\n languageData: {\n commentTokens: { block: { open: \"<!--\", close: \"-->\" } },\n indentOnInput: /^\\s*<\\/\\w+\\W$/,\n wordChars: \"-._\"\n }\n});\n/**\nA language provider based on the [Lezer HTML\nparser](https://github.com/lezer-parser/html), extended with the\nJavaScript and CSS parsers to parse the content of `<script>` and\n`<style>` tags.\n*/\nconst htmlLanguage = /*@__PURE__*/htmlPlain.configure({\n wrap: /*@__PURE__*/configureNesting(defaultNesting, defaultAttrs)\n});\n/**\nLanguage support for HTML, including\n[`htmlCompletion`](https://codemirror.net/6/docs/ref/#lang-html.htmlCompletion) and JavaScript and\nCSS support extensions.\n*/\nfunction html(config = {}) {\n let dialect = \"\", wrap;\n if (config.matchClosingTags === false)\n dialect = \"noMatch\";\n if (config.selfClosingTags === true)\n dialect = (dialect ? dialect + \" \" : \"\") + \"selfClosing\";\n if (config.nestedLanguages && config.nestedLanguages.length ||\n config.nestedAttributes && config.nestedAttributes.length)\n wrap = configureNesting((config.nestedLanguages || []).concat(defaultNesting), (config.nestedAttributes || []).concat(defaultAttrs));\n let lang = wrap ? htmlPlain.configure({ wrap, dialect }) : dialect ? htmlLanguage.configure({ dialect }) : htmlLanguage;\n return new LanguageSupport(lang, [\n htmlLanguage.data.of({ autocomplete: htmlCompletionSourceWith(config) }),\n config.autoCloseTags !== false ? autoCloseTags : [],\n javascript().support,\n css().support\n ]);\n}\nconst selfClosers = /*@__PURE__*/new Set(/*@__PURE__*/\"area base br col command embed frame hr img input keygen link meta param source track wbr menuitem\".split(\" \"));\n/**\nExtension that will automatically insert close tags when a `>` or\n`/` is typed.\n*/\nconst autoCloseTags = /*@__PURE__*/EditorView.inputHandler.of((view, from, to, text, insertTransaction) => {\n if (view.composing || view.state.readOnly || from != to || (text != \">\" && text != \"/\") ||\n !htmlLanguage.isActiveAt(view.state, from, -1))\n return false;\n let base = insertTransaction(), { state } = base;\n let closeTags = state.changeByRange(range => {\n var _a, _b, _c;\n let didType = state.doc.sliceString(range.from - 1, range.to) == text;\n let { head } = range, around = syntaxTree(state).resolveInner(head - 1, -1), name;\n if (around.name == \"TagName\" || around.name == \"StartTag\")\n around = around.parent;\n if (didType && text == \">\" && around.name == \"OpenTag\") {\n if (((_b = (_a = around.parent) === null || _a === void 0 ? void 0 : _a.lastChild) === null || _b === void 0 ? void 0 : _b.name) != \"CloseTag\" &&\n (name = elementName(state.doc, around.parent, head)) &&\n !selfClosers.has(name)) {\n let to = head + (state.doc.sliceString(head, head + 1) === \">\" ? 1 : 0);\n let insert = `</${name}>`;\n return { range, changes: { from: head, to, insert } };\n }\n }\n else if (didType && text == \"/\" && around.name == \"IncompleteCloseTag\") {\n let base = around.parent;\n if (around.from == head - 2 && ((_c = base.lastChild) === null || _c === void 0 ? void 0 : _c.name) != \"CloseTag\" &&\n (name = elementName(state.doc, base, head)) && !selfClosers.has(name)) {\n let to = head + (state.doc.sliceString(head, head + 1) === \">\" ? 1 : 0);\n let insert = `${name}>`;\n return {\n range: EditorSelection.cursor(head + insert.length, -1),\n changes: { from: head, to, insert }\n };\n }\n }\n return { range };\n });\n if (closeTags.changes.empty)\n return false;\n view.dispatch([\n base,\n state.update(closeTags, {\n userEvent: \"input.complete\",\n scrollIntoView: true\n })\n ]);\n return true;\n});\n\nexport { autoCloseTags, html, htmlCompletionSource, htmlCompletionSourceWith, htmlLanguage, htmlPlain };\n", "import type { CommandFunction } from '@remirror/core'\nimport { Selection } from '@remirror/pm/state'\n\n/**\n * Handling cursor motion from the outer to the inner editor must be done with a\n * keymap on the outer editor. The `arrowHandler` function uses the\n * `endOfTextblock` method to determine, in a bidi-text-aware way, whether the\n * cursor is at the end of a given textblock. If it is, and the next block is a\n * code block, the selection is moved into it.\n *\n * Adapted from https://prosemirror.net/examples/codemirror/\n */\nexport function arrowHandler(dir: 'left' | 'right' | 'up' | 'down'): CommandFunction {\n return ({ dispatch, view, tr }) => {\n if (!view) {\n return false\n }\n\n if (!(tr.selection.empty && view.endOfTextblock(dir))) {\n return false\n }\n\n const side = dir === 'left' || dir === 'up' ? -1 : 1\n const $head = tr.selection.$head\n const nextPos = Selection.near(tr.doc.resolve(side > 0 ? $head.after() : $head.before()), side)\n\n if (\n nextPos.$head &&\n (nextPos.$head.parent.type.name === 'codeMirror' ||\n nextPos.$head.parent.type.name === 'html_block')\n ) {\n dispatch?.(tr.setSelection(nextPos))\n return true\n }\n\n return false\n }\n}\n", "/* eslint-disable @typescript-eslint/no-shadow */\nimport type {\n ApplySchemaAttributes,\n CommandFunction,\n DelayedPromiseCreator,\n EditorView,\n InputRule,\n NodeExtensionSpec,\n NodeSpecOverride,\n PrimitiveSelection,\n ProsemirrorAttributes,\n} from '@remirror/core'\nimport {\n command,\n ErrorConstant,\n extension,\n ExtensionTag,\n getTextSelection,\n invariant,\n isElementDomNode,\n isNumber,\n NodeExtension,\n nodeInputRule,\n omitExtraAttributes,\n} from '@remirror/core'\nimport type { PasteRule } from '@remirror/pm/paste-rules'\nimport { insertPoint } from '@remirror/pm/transform'\nimport { ExtensionImageTheme } from '@remirror/theme'\nimport type { NodeSerializerOptions } from '@/transform'\nimport { ParserRuleType } from '@/transform'\nimport { buildHtmlStringFromAst, getAttrsBySignalHtmlContent } from '@/utils/html'\nimport type { ComponentType } from 'react'\nimport type { ImageNodeViewProps } from './image-nodeview'\nimport { ImageNodeView } from './image-nodeview'\nimport type { ExtensionsOptions } from '..'\n\ntype DelayedImage = DelayedPromiseCreator<ImageAttributes>\n\nexport interface ImageOptions {\n createPlaceholder?: (view: EditorView, pos: number) => HTMLElement\n updatePlaceholder?: (\n view: EditorView,\n pos: number,\n element: HTMLElement,\n progress: number,\n ) => void\n handleViewImgSrcUrl?: ExtensionsOptions['handleViewImgSrcUrl']\n destroyPlaceholder?: (view: EditorView, element: HTMLElement) => void\n /**\n * The upload handler for the image extension.\n *\n * It receives a list of dropped or pasted files and returns a promise for the\n * attributes which should be used to insert the image into the editor.\n *\n * @param files - a list of files to upload.\n * @param setProgress - the progress handler.\n */\n uploadHandler?: (files: FileWithProgress[]) => DelayedImage[]\n\n /**\n * When pasting mixed text and image content (usually from Microsoft Office products) the content on the clipboard is either:\n *\n * a. one large image: containing effectively a screenshot of the original content (an image with text in it).\n * b. HTML content: containing usable text, but images with file protocol URLs (which cannot be resolved due to browser security restrictions).\n *\n * If true, this will extract the text from the clipboard data, and drop the images.\n * If false, the \"screenshot\" image will be used and the text will be dropped.\n *\n * @defaultValue true\n */\n preferPastedTextContent?: boolean\n}\n\ninterface FileWithProgress {\n file: File\n progress: SetProgress\n}\n\n/**\n * Set the progress.\n *\n * @param progress - a value between `0` and `1`.\n */\ntype SetProgress = (progress: number) => void\n\n/**\n * The image extension for placing images into your editor.\n *\n * TODO ->\n * - Captions https://glitch.com/edit/#!/pet-figcaption?path=index.js%3A27%3A1 into a preset\n *\n * TODO => Split this into an image upload extension and image extension.\n * - Add a base64 image\n */\n@extension<ImageOptions>({\n defaultOptions: {\n createPlaceholder,\n handleViewImgSrcUrl: async (src) => src,\n updatePlaceholder: () => {},\n destroyPlaceholder: () => {},\n uploadHandler,\n preferPastedTextContent: true,\n },\n})\nexport class HtmlImageExtension extends NodeExtension<ImageOptions> {\n get name() {\n return 'html_image' as const\n }\n\n ReactComponent: ComponentType<ImageNodeViewProps> | undefined = (props) => {\n const { handleViewImgSrcUrl } = this.options\n\n return <ImageNodeView handleViewImgSrcUrl={handleViewImgSrcUrl} {...props} />\n }\n\n createTags() {\n return [ExtensionTag.InlineNode, ExtensionTag.Media]\n }\n\n createNodeSpec(extra: ApplySchemaAttributes, override: NodeSpecOverride): NodeExtensionSpec {\n const { preferPastedTextContent } = this.options\n return {\n inline: true,\n selectable: true,\n atom: true,\n ...override,\n attrs: {\n ...extra.defaults(),\n alt: { default: '' },\n crop: { default: null },\n height: { default: null },\n width: { default: null },\n rotate: { default: null },\n src: { default: null },\n title: { default: '' },\n fileName: { default: null },\n },\n parseDOM: [\n {\n tag: 'img[src]',\n getAttrs: (element) => {\n if (isElementDomNode(element)) {\n const attrs = getImageAttributes({ element, parse: extra.parse })\n\n if (preferPastedTextContent && attrs.src?.startsWith('file:///')) {\n return false\n }\n\n return attrs\n }\n\n return {}\n },\n },\n ...(override.parseDOM ?? []),\n ],\n toDOM: (node) => {\n const attrs = omitExtraAttributes(node.attrs, extra)\n return ['img', { ...extra.dom(node), ...attrs }]\n },\n }\n }\n\n @command()\n insertImage(attributes: ImageAttributes, selection?: PrimitiveSelection): CommandFunction {\n return ({ tr, dispatch }) => {\n const { from, to } = getTextSelection(selection ?? tr.selection, tr.doc)\n const node = this.type.create(attributes)\n\n dispatch?.(tr.replaceRangeWith(from, to, node))\n\n return true\n }\n }\n\n /**\n * Insert an image once the provide promise resolves.\n */\n @command()\n uploadImage(\n value: DelayedPromiseCreator<ImageAttributes>,\n onElement?: (element: HTMLElement) => void,\n ): CommandFunction {\n const { updatePlaceholder, destroyPlaceholder, createPlaceholder } = this.options\n return (props) => {\n const { tr } = props\n\n // This is update in the validate hook\n let pos = tr.selection.from\n\n return this.store\n .createPlaceholderCommand({\n promise: value,\n placeholder: {\n type: 'widget',\n get pos() {\n return pos\n },\n createElement: (view, pos) => {\n const element = createPlaceholder(view, pos)\n onElement?.(element)\n return element\n },\n onUpdate: (view, pos, element, data) => {\n updatePlaceholder(view, pos, element, data)\n },\n onDestroy: (view, element) => {\n destroyPlaceholder(view, element)\n },\n },\n onSuccess: (value, range, commandProps) => this.insertImage(value, range)(commandProps),\n })\n .validate(({ tr, dispatch }) => {\n const insertPos = insertPoint(tr.doc, pos, this.type)\n\n if (insertPos == null) {\n return false\n }\n\n pos = insertPos\n\n if (!tr.selection.empty) {\n dispatch?.(tr.deleteSelection())\n }\n\n return true\n }, 'unshift')\n\n .generateCommand()(props)\n }\n }\n\n private fileUploadFileHandler(files: File[], event: ClipboardEvent | DragEvent, pos?: number) {\n const { preferPastedTextContent, uploadHandler } = this.options\n\n if (\n preferPastedTextContent &&\n isClipboardEvent(event) &&\n event.clipboardData?.getData('text/plain')\n ) {\n return false\n }\n\n const { commands, chain } = this.store\n const filesWithProgress: FileWithProgress[] = files.map((file, index) => ({\n file,\n progress: (progress) => {\n commands.updatePlaceholder(uploads[index], progress)\n },\n }))\n\n const uploads = uploadHandler(filesWithProgress)\n\n if (isNumber(pos)) {\n chain.selectText(pos)\n }\n\n for (const upload of uploads) {\n chain.uploadImage(upload)\n }\n\n chain.run()\n\n return true\n }\n\n createPasteRules(): PasteRule[] {\n return [\n {\n type: 'file',\n regexp: /image/i,\n fileHandler: (props): boolean => {\n const pos = props.type === 'drop' ? props.pos : undefined\n return this.fileUploadFileHandler(props.files, props.event, pos)\n },\n },\n ]\n }\n\n createInputRules(): InputRule[] {\n const rules: InputRule[] = [\n nodeInputRule({\n regexp: new RegExp('<img[^>]*>'),\n type: this.type,\n getAttributes: (match) => {\n return getAttrsBySignalHtmlContent(match[0])\n },\n }),\n ]\n\n return rules\n }\n\n public fromMarkdown() {\n return [\n {\n type: ParserRuleType.inline,\n token: 'html_image',\n node: this.name,\n },\n ] as const\n }\n\n public toMarkdown({ state, node }: NodeSerializerOptions) {\n state.text(\n buildHtmlStringFromAst({\n tag: 'img',\n attrs: node.attrs,\n voidElement: true,\n }),\n false,\n )\n }\n}\n\nexport type ImageAttributes = ProsemirrorAttributes<ImageExtensionAttributes>\n\nexport interface ImageExtensionAttributes {\n align?: 'center' | 'end' | 'justify' | 'left' | 'match-parent' | 'right' | 'start'\n alt?: string\n height?: string | number\n width?: string | number\n rotate?: string\n src: string\n title?: string\n\n /** The file name used to create the image. */\n fileName?: string\n}\n\n/**\n * The set of valid image files.\n */\nconst IMAGE_FILE_TYPES = new Set([\n 'image/jpeg',\n 'image/gif',\n 'image/png',\n 'image/jpg',\n 'image/svg',\n 'image/webp',\n])\n\n/**\n * True when the provided file is an image file.\n */\nexport function isImageFileType(file: File): boolean {\n return IMAGE_FILE_TYPES.has(file.type)\n}\n\n/**\n * Get the width and the height of the image.\n */\nfunction getDimensions(element: HTMLElement) {\n let { width, height } = element.style\n width = width || element.getAttribute('width') || ''\n height = height || element.getAttribute('height') || ''\n\n return { width, height }\n}\n\n/**\n * Retrieve attributes from the dom for the image extension.\n */\nfunction getImageAttributes({\n element,\n parse,\n}: {\n element: HTMLElement\n parse: ApplySchemaAttributes['parse']\n}) {\n const { width, height } = getDimensions(element)\n\n return {\n ...parse(element),\n alt: element.getAttribute('alt') ?? '',\n height: Number.parseInt(height || '0', 10) || null,\n src: element.getAttribute('src') ?? null,\n title: element.getAttribute('title') ?? '',\n width: Number.parseInt(width || '0', 10) || null,\n fileName: element.getAttribute('data-file-name') ?? null,\n }\n}\n\nfunction createPlaceholder(): HTMLElement {\n const element = document.createElement('div')\n element.classList.add(ExtensionImageTheme.IMAGE_LOADER)\n\n return element\n}\n\n/**\n * The default handler converts the files into their `base64` representations\n * and adds the attributes before inserting them into the editor.\n */\nfunction uploadHandler(files: FileWithProgress[]): DelayedImage[] {\n invariant(files.length > 0, {\n code: ErrorConstant.EXTENSION,\n message: 'The upload handler was applied for the image extension without any valid files',\n })\n\n let completed = 0\n const promises: DelayedPromiseCreator<ImageAttributes>[] = []\n\n for (const { file, progress } of files) {\n promises.push(\n // eslint-disable-next-line @typescript-eslint/no-loop-func\n () =>\n new Promise<ImageAttributes>((resolve) => {\n const reader = new FileReader()\n\n reader.addEventListener(\n 'load',\n (readerEvent) => {\n completed += 1\n progress(completed / files.length)\n resolve({ src: readerEvent.target?.result as string, fileName: file.name })\n },\n { once: true },\n )\n\n reader.readAsDataURL(file)\n }),\n )\n }\n\n return promises\n}\n\nfunction isClipboardEvent(event: ClipboardEvent | DragEvent): event is ClipboardEvent {\n return (event as ClipboardEvent).clipboardData !== undefined\n}\n", "import type { NodeViewComponentProps } from '@remirror/react'\nimport { Image, Popover } from '@markflowy/components'\nimport { ImageToolTips } from './image-tool-tips'\nimport { Resizable } from '@/components/Resizable'\nimport { useEffect, useRef, useState } from 'react'\nimport type { ExtensionsOptions } from '..'\n\nexport interface ImageNodeViewProps extends NodeViewComponentProps {\n handleViewImgSrcUrl?: ExtensionsOptions['handleViewImgSrcUrl']\n}\nexport function ImageNodeView(props: ImageNodeViewProps) {\n const { node, selected, updateAttributes, handleViewImgSrcUrl } = props\n const [src, setSrc] = useState<string>('')\n const initRef = useRef<() => void>()\n\n useEffect(() => {\n if (handleViewImgSrcUrl) {\n handleViewImgSrcUrl(node.attrs.src).then((newSrc) => {\n setSrc(newSrc)\n })\n } else {\n setSrc(node.attrs.src)\n }\n }, [handleViewImgSrcUrl, node.attrs.src])\n\n return (\n <Popover\n customContent={<ImageToolTips node={node} updateAttributes={updateAttributes} />}\n placement='top-start'\n open={selected}\n arrow={false}\n >\n <Resizable controlInit={(init) => (initRef.current = init)} {...props}>\n {src ? (\n <Image\n fallback='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAAAAACIM/FCAAAChElEQVR4Ae3aMW/TQBxAcb70k91AAiGuGlZAtOlQApWaDiSdklZq2RPUTm1xUWL3PgqSpygkXlh88N54nn7S2Trd3y/CP5IQIUKECBEiRIgQIUKECBEiRIgQIUKECBEiRIgQIUKECBEiRIgQIUKECBEiRIgQIUKECBEiRIgQIUKECPmPIEKECBEiRIgQIeX82+FBO0naB4eTRRkt5P7sNWt1Rw9RQvKThI2SYR4f5OoVW2rfRAYpT6hqHc8WeVHki9mgRdWwiAmyfA9AdrlaW5tlAHxcxQMpK8feRbGxPEkrSREN5ARg/y780V0GMIwFcgXwLg9byvsAN3FA8lfAfr7jYQZ0nqKAfAb21vYVwNruSoEvMUDuE+Ai7IKECZA+RAA5A7JiN6TMgFHzIeUb4DLshoQZ0H1uPGQOvFzVQZYtYNF4yBg4DnWQMAAmjYccArN6yBQ4ajzkAFjUQ+ZAv/GQNpDXQ3Kg03hIAhT1kAJIhLi1/vJl39Ic6Mf3+a2K8PM7BgahtgEwjuKI0lqGjSI8opRdYFb3sk/jODSGEZCVuyFFDzgPzYc8JMBkN2QMpI8RQMIQ2LvdBblNgdM4Lh/aQJaHrf3sAe2nKCDhGqCfb3VEcx1UNQTItlzQ3fYAvoZYIMUHgHRSbiyPU4BPZUSX2JWEbLZcW5v2qByrmMYKxZCq1mA6z4sin08HLapOy8gGPddtttT5HuHobZiwUXr6K85h6KjLWm/PH+MdTy/GR/12knb6g8mPZ38YECJEiBAhQoQIESJEiBAhQoQIESJEiBAhQoQIESJEiBAhQoQIESJEiBAhQoQIESJEiBAhQoQIESJEiBAhQoQIESJEiBAh0fUb5q7oCGreEVEAAAAASUVORK5CYII='\n onLoad={() => initRef.current?.()}\n {...node.attrs}\n src={src}\n />\n ) : null}\n </Resizable>\n </Popover>\n )\n}\n", "import { useState, type FC } from 'react'\nimport { Input, Space, Tooltip } from '@markflowy/components'\nimport type { NodeViewComponentProps } from '@remirror/react'\n\ninterface ImageToolTipsProps {\n node: NodeViewComponentProps['node']\n updateAttributes?: NodeViewComponentProps['updateAttributes']\n}\n\nexport const ImageToolTips: FC<ImageToolTipsProps> = (props) => {\n const { node } = props\n const { src } = node.attrs\n const [srcVal, setSrcVal] = useState(src)\n\n const handleSrcInput: React.FormEventHandler<HTMLInputElement> = (e) => {\n setSrcVal(e.currentTarget.value)\n }\n\n const updateSrc = () => {\n if (props.updateAttributes) {\n props.updateAttributes({ ...node.attrs, src: srcVal })\n }\n }\n\n return (\n <Space>\n <Tooltip title='Image URL [Enter]' placement='top'>\n <Input\n placeholder='Image URL'\n value={srcVal}\n style={{ fontSize: '14px' }}\n onInput={handleSrcInput}\n onPressEnter={updateSrc}\n />\n </Tooltip>\n </Space>\n )\n}\n", "import styled from 'styled-components'\nimport { useRef, type FC, useEffect, useCallback, memo, useState } from 'react'\nimport { throttle } from '@remirror/core-helpers'\nimport type { NodeViewComponentProps } from '@remirror/react'\nimport { ResizableHandle, ResizableHandleType } from './ResizableHandle'\n\nexport enum ResizableRatioType {\n Fixed,\n Flexible,\n}\n\nconst ResizableContainer = styled.div`\n display: inline-block;\n position: relative;\n max-width: 100%;\n line-height: 0;\n user-select: none;\n border-radius: 2px;\n transition: all 0.15s ease-out;\n`\n\ninterface ResizableProps extends BaseComponentProps, NodeViewComponentProps {\n aspectRatio?: ResizableRatioType\n defaultSize?: { width: number; height: number }\n controlInit?: (init: () => void) => void\n onResize?: (e: React.MouseEvent<Element, MouseEvent>, handleType: ResizableHandleType) => void\n}\n\nconst MIN_WIDTH = 20\n\nexport const Resizable: FC<ResizableProps> = memo((props) => {\n const {\n node,\n aspectRatio = ResizableRatioType.Fixed,\n updateAttributes,\n selected,\n controlInit,\n } = props\n\n const [size, setSize] = useState<{ width?: number; height?: number }>({})\n const [inNode, setInNode] = useState(false)\n const [hasChanged, setHasChanged] = useState(false)\n const destoryList = useRef<(() => void)[]>([])\n const containerRef = useRef<HTMLDivElement>(null)\n const startWidthRef = useRef(0)\n const startHeightRef = useRef(0)\n\n const startResizing = useCallback(\n (e: React.MouseEvent<Element, MouseEvent>, handleType: ResizableHandleType) => {\n e.preventDefault()\n\n const startX = e.pageX\n const startY = e.pageY\n const startWidth = startWidthRef.current || 0\n const startHeight = startHeightRef.current || 0\n\n const onMouseMove = throttle(100, false, (event: any) => {\n const currentX = event.pageX\n const currentY = event.pageY\n const diffX = currentX - startX\n const diffY = currentY - startY\n let newWidth: number | null = null\n let newHeight: number | null = null\n\n if (aspectRatio === ResizableRatioType.Fixed && startWidth && startHeight) {\n switch (handleType) {\n case ResizableHandleType.Right:\n case ResizableHandleType.TopRight:\n case ResizableHandleType.BottomRight:\n newWidth = startWidth + diffX\n newHeight = (startHeight / startWidth) * newWidth!\n break\n case ResizableHandleType.Left:\n case ResizableHandleType.TopLeft:\n case ResizableHandleType.BottomLeft:\n newWidth = startWidth - diffX\n newHeight = (startHeight / startWidth) * newWidth\n break\n case ResizableHandleType.Bottom:\n newHeight = startHeight + diffY\n newWidth = (startWidth / startHeight) * newHeight!\n break\n case ResizableHandleType.Top:\n newHeight = startHeight - diffY\n newWidth = (startWidth / startHeight) * newHeight!\n break\n }\n } else if (aspectRatio === ResizableRatioType.Flexible) {\n switch (handleType) {\n case ResizableHandleType.Right:\n newWidth = startWidth + diffX\n break\n case ResizableHandleType.Left:\n newWidth = startWidth - diffX\n break\n case ResizableHandleType.Bottom:\n newHeight = startHeight + diffY\n break\n case ResizableHandleType.Top:\n newHeight = startHeight - diffY\n break\n case ResizableHandleType.BottomRight:\n case ResizableHandleType.TopRight:\n newWidth = startWidth + diffX\n newHeight = startHeight + diffY\n break\n case ResizableHandleType.BottomLeft:\n case ResizableHandleType.TopLeft:\n newWidth = startWidth - diffX\n newHeight = startHeight + diffY\n break\n }\n }\n\n if (typeof newWidth === 'number' && newWidth < MIN_WIDTH) {\n if (aspectRatio === ResizableRatioType.Fixed && startWidth && startHeight) {\n newWidth = MIN_WIDTH\n newHeight = (startHeight / startWidth) * newWidth\n } else if (aspectRatio === ResizableRatioType.Flexible) {\n newWidth = MIN_WIDTH\n }\n }\n\n if (newWidth && containerRef.current) {\n setSize((prev) => ({ ...prev, width: Math.round(newWidth!) }))\n }\n\n if (newHeight) {\n setSize((prev) => ({ ...prev, height: Math.round(newHeight!) }))\n }\n })\n\n const onMouseUp = (event: any) => {\n event.preventDefault()\n\n document.removeEventListener('mousemove', onMouseMove)\n document.removeEventListener('mouseup', onMouseUp)\n\n if (containerRef.current) {\n const { width, height } = containerRef.current.getBoundingClientRect()\n startWidthRef.current = width\n startHeightRef.current = height\n setSize({ width, height })\n\n updateAttributes({\n ...node.attrs,\n width: startWidthRef.current,\n height: startHeightRef.current,\n })\n }\n }\n\n document.addEventListener('mousemove', onMouseMove)\n document.addEventListener('mouseup', onMouseUp)\n\n destoryList.current.push(() => document.removeEventListener('mousemove', onMouseMove))\n destoryList.current.push(() => document.removeEventListener('mouseup', onMouseUp))\n },\n [aspectRatio, node.attrs, updateAttributes],\n )\n\n const handleResizing = useCallback(\n (e: React.MouseEvent, handleType: ResizableHandleType) => {\n startResizing(e, handleType)\n },\n [startResizing],\n )\n\n useEffect(() => {\n const init = () => {\n if (containerRef.current) {\n const { width, height } = containerRef.current.getBoundingClientRect()\n startWidthRef.current = width\n startHeightRef.current = height\n setHasChanged(true)\n setSize({ width, height })\n }\n }\n\n if (controlInit) {\n controlInit(init)\n } else {\n init()\n }\n\n return () => {\n destoryList.current.forEach((destory) => destory())\n destoryList.current = []\n }\n }, [controlInit])\n\n const handleVisible = selected || inNode\n\n return (\n <ResizableContainer\n ref={containerRef}\n style={\n hasChanged\n ? {\n width: `${size.width}px`,\n height: `${size.height}px`,\n aspectRatio: `${size.width} / ${size.height}`,\n }\n : undefined\n }\n onMouseOver={() => setInNode(true)}\n onMouseOut={() => setInNode(false)}\n >\n <ResizableHandle\n visible={handleVisible}\n onResizing={handleResizing}\n handleType={ResizableHandleType.Top}\n />\n <ResizableHandle\n visible={handleVisible}\n onResizing={handleResizing}\n handleType={ResizableHandleType.Bottom}\n />\n <ResizableHandle\n visible={handleVisible}\n onResizing={handleResizing}\n handleType={ResizableHandleType.Left}\n />\n <ResizableHandle\n visible={handleVisible}\n onResizing={handleResizing}\n handleType={ResizableHandleType.Right}\n />\n {props.children}\n </ResizableContainer>\n )\n})\n", "// packages/remirror__core-helpers/src/core-errors.ts\nimport { BaseError as BaseError2 } from \"make-error\";\nimport { ErrorConstant } from \"@remirror/core-constants\";\n\n// packages/remirror__core-helpers/src/core-helpers.ts\nimport deepmerge from \"deepmerge\";\nimport fastDeepEqual from \"fast-deep-equal\";\nimport { BaseError } from \"make-error\";\nimport omit from \"object.omit\";\nimport pick from \"object.pick\";\nimport {\n camelCase,\n capitalCase,\n constantCase,\n kebabCase,\n pascalCase,\n pathCase,\n snakeCase,\n spaceCase\n} from \"case-anything\";\nimport { debounce, throttle } from \"throttle-debounce\";\nfunction Cast(value) {\n return value;\n}\nfunction assertGet(value, key, message) {\n const prop = value[key];\n assert(!isUndefined(prop), message);\n return prop;\n}\nfunction assert(testValue, message) {\n if (!testValue) {\n throw new AssertionError(message);\n }\n}\nvar AssertionError = class extends BaseError {\n constructor() {\n super(...arguments);\n this.name = \"AssertionError\";\n }\n};\nfunction entries(value) {\n return Object.entries(value);\n}\nfunction keys(value) {\n return Object.keys(value);\n}\nfunction values(value) {\n return Object.values(value);\n}\nfunction includes(array, item, fromIndex) {\n return array.includes(item, fromIndex);\n}\nfunction object(value) {\n return Object.assign(/* @__PURE__ */ Object.create(null), value);\n}\nfunction toString(value) {\n return Object.prototype.toString.call(value);\n}\nfunction getObjectType(value) {\n const objectName = toString(value).slice(8, -1);\n return objectName;\n}\nfunction isOfType(type, predicate) {\n return (value) => {\n if (typeof value !== type) {\n return false;\n }\n return predicate ? predicate(value) : true;\n };\n}\nfunction isObjectOfType(type) {\n return (value) => getObjectType(value) === type;\n}\nfunction isDirectInstanceOf(instance, Constructor) {\n return Object.getPrototypeOf(instance) === Constructor.prototype;\n}\nvar isUndefined = isOfType(\"undefined\");\nvar isString = isOfType(\"string\");\nvar isNumber = isOfType(\"number\", (value) => !Number.isNaN(value));\nvar isFunction = isOfType(\"function\");\nfunction isNull(value) {\n return value === null;\n}\nfunction isClass(value) {\n return isFunction(value) && value.toString().startsWith(\"class \");\n}\nfunction isBoolean(value) {\n return value === true || value === false;\n}\nvar isSymbol = isOfType(\"symbol\");\nfunction isInteger(value) {\n return Number.isInteger(value);\n}\nfunction isSafeInteger(value) {\n return Number.isSafeInteger(value);\n}\nfunction isPlainObject(value) {\n if (getObjectType(value) !== \"Object\" /* Object */) {\n return false;\n }\n const prototype = Object.getPrototypeOf(value);\n return prototype === null || prototype === Object.getPrototypeOf({});\n}\nfunction isPrimitive(value) {\n return value == null || /^[bns]/.test(typeof value);\n}\nfunction isJSONPrimitive(value) {\n return value === null || [\"boolean\", \"number\", \"string\"].includes(typeof value);\n}\nfunction isNullOrUndefined(value) {\n return isNull(value) || isUndefined(value);\n}\nfunction isObject(value) {\n return !isNullOrUndefined(value) && (isFunction(value) || isOfType(\"object\")(value));\n}\nfunction isInstanceOf(Constructor) {\n return (value) => isObject(value) && value instanceof Constructor;\n}\nfunction isNativePromise(value) {\n return isObjectOfType(\"Promise\" /* Promise */)(value);\n}\nvar hasPromiseAPI = (value) => !!(!isNull(value) && isObject(value) && isFunction(value.then) && isFunction(value.catch));\nfunction isPromise(value) {\n return isNativePromise(value) || hasPromiseAPI(value);\n}\nvar isRegExp = isObjectOfType(\"RegExp\" /* RegExp */);\nvar isDate = isObjectOfType(\"Date\" /* Date */);\nvar isError = isObjectOfType(\"Error\" /* Error */);\nfunction isMap(value) {\n return isObjectOfType(\"Map\" /* Map */)(value);\n}\nfunction isSet(value) {\n return isObjectOfType(\"Set\" /* Set */)(value);\n}\nfunction isEmptyObject(value) {\n return isObject(value) && !isMap(value) && !isSet(value) && Object.keys(value).length === 0;\n}\nvar isArray = Array.isArray;\nfunction isEmptyArray(value) {\n return isArray(value) && value.length === 0;\n}\nfunction isNonEmptyArray(value) {\n return isArray(value) && value.length > 0;\n}\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\nfunction format(value) {\n value = value.trim();\n return /^(?:webOS|i(?:OS|P))/.test(value) ? value : capitalize(value);\n}\nfunction callIfDefined(fn, ...args) {\n if (isFunction(fn)) {\n fn(...args);\n }\n}\nfunction findMatches(text, regexp, runWhile = (match) => !!match) {\n regexp.lastIndex = 0;\n const results = [];\n const flags = regexp.flags;\n let match;\n if (!flags.includes(\"g\")) {\n regexp = new RegExp(regexp.source, `g${flags}`);\n }\n do {\n match = regexp.exec(text);\n if (match) {\n results.push(match);\n }\n } while (runWhile(match));\n regexp.lastIndex = 0;\n return results;\n}\nfunction cleanupOS(os, pattern, label) {\n if (pattern && label) {\n os = os.replace(new RegExp(pattern, \"i\"), label);\n }\n return format(\n os.replace(/ ce$/i, \" CE\").replace(/\\bhpw/i, \"web\").replace(/\\bMacintosh\\b/, \"Mac OS\").replace(/_powerpc\\b/i, \" OS\").replace(/\\b(os x) [^\\d ]+/i, \"$1\").replace(/\\bMac (OS X)\\b/, \"$1\").replace(/\\/(\\d)/, \" $1\").replace(/_/g, \".\").replace(/(?: bepc|[ .]*fc[\\d .]+)$/i, \"\").replace(/\\bx86\\.64\\b/gi, \"x86_64\").replace(/\\b(Windows Phone) OS\\b/, \"$1\").replace(/\\b(Chrome OS \\w+) [\\d.]+\\b/, \"$1\").split(\" on \")[0] ?? \"\"\n );\n}\nfunction isAndroidOS() {\n const ua = navigator.userAgent;\n const match = new RegExp(\"\\\\bAndroid(?:/[\\\\d.]+|[ \\\\w.]*)\", \"i\").exec(ua);\n if (!match) {\n return false;\n }\n return cleanupOS(match[0] ?? \"\", \"Android\", \"Android\").includes(\"Android\");\n}\nfunction randomFloat(min, max) {\n if (!max) {\n max = min;\n min = 0;\n }\n return Math.random() * (max - min + 1) + min;\n}\nfunction randomInt(min, max) {\n return Math.floor(randomFloat(min, max));\n}\nfunction startCase(string) {\n return string.replace(/_/g, \" \").replace(/([a-z])([A-Z])/g, (_, $1, $2) => `${$1} ${$2}`).replace(/(\\s|^)(\\w)/g, (_, $1, $2) => `${$1}${$2.toUpperCase()}`);\n}\nfunction n() {\n const time = Date.now();\n const last2 = n.last || time;\n return n.last = time > last2 ? time : last2 + 1;\n}\nn.last = 0;\nfunction uniqueId(prefix = \"\") {\n return `${prefix}${n().toString(36)}`;\n}\nfunction take(array, number) {\n number = Math.max(Math.min(0, number), number);\n return array.slice(0, number);\n}\nfunction omitUndefined(object2) {\n return omit(object2, (value) => !isUndefined(value));\n}\nfunction clone(value) {\n if (!isPlainObject(value)) {\n throw new Error(\"An invalid value was passed into this clone utility. Expected a plain object\");\n }\n return { ...value };\n}\nfunction shallowClone(value) {\n const clone2 = Object.create(Object.getPrototypeOf(value));\n const descriptors = Object.getOwnPropertyDescriptors(value);\n Object.defineProperties(clone2, descriptors);\n return clone2;\n}\nvar isEqual = fastDeepEqual;\nfunction uniqueArray(array, fromStart = false) {\n const array_ = fromStart ? [...array].reverse() : array;\n const set2 = new Set(array_);\n return fromStart ? [...set2].reverse() : [...set2];\n}\nfunction flattenArray(array) {\n const flattened = [];\n for (const item of array) {\n const itemsToInsert = isArray(item) ? flattenArray(item) : [item];\n flattened.push(...itemsToInsert);\n }\n return flattened;\n}\nfunction noop() {\n return;\n}\nfunction deepMerge(...objects) {\n return deepmerge.all(objects, { isMergeableObject: isPlainObject });\n}\nfunction clamp({ min, max, value }) {\n if (value < min) {\n return min;\n }\n return value > max ? max : value;\n}\nfunction last(array) {\n return array[array.length - 1];\n}\nfunction sort(array, compareFn) {\n return [...array].map((value, index) => ({ value, index })).sort((a, z) => compareFn(a.value, z.value) || a.index - z.index).map(({ value }) => value);\n}\nfunction get(root, path, defaultValue) {\n try {\n if (isString(path) && path in root) {\n return root[path];\n }\n if (isArray(path)) {\n path = `['${path.join(\"']['\")}']`;\n }\n let obj = root;\n path.replace(\n /\\[\\s*([\"'])(.*?)\\1\\s*]|^\\s*(\\w+)\\s*(?=\\.|\\[|$)|\\.\\s*(\\w*)\\s*(?=\\.|\\[|$)|\\[\\s*(-?\\d+)\\s*]/g,\n (_, __, quotedProp, firstLevel, namedProp, index) => {\n obj = obj[quotedProp || firstLevel || namedProp || index];\n return \"\";\n }\n );\n return obj === void 0 ? defaultValue : obj;\n } catch {\n return defaultValue;\n }\n}\nfunction setPropInternal(path, obj, value, index) {\n if (path.length === index) {\n return value;\n }\n obj = obj || {};\n const key = path[index];\n assert(key);\n return setClone(obj, key, setPropInternal(path, obj[key], value, ++index));\n}\nfunction setClone(obj, key, value) {\n const newObj = clone(obj);\n newObj[key] = value;\n return newObj;\n}\nfunction set(path, obj, value) {\n if (isNumber(path)) {\n return setClone(obj, path, value);\n }\n if (isString(path)) {\n path = path.split(\".\");\n }\n return setPropInternal(path, obj, value, 0);\n}\nfunction unset(path, target) {\n const clonedObject = clone(target);\n let value = clonedObject;\n for (const [index, key] of path.entries()) {\n const shouldDelete = index >= path.length - 1;\n let item = value[key];\n if (shouldDelete) {\n if (isArray(value)) {\n const indexKey = Number.parseInt(key.toString(), 10);\n if (isNumber(indexKey)) {\n value.splice(indexKey, 1);\n }\n } else {\n Reflect.deleteProperty(value, key);\n }\n return clonedObject;\n }\n if (isPrimitive(item)) {\n return clonedObject;\n }\n item = isArray(item) ? [...item] : { ...item };\n value[key] = item;\n value = item;\n }\n return clonedObject;\n}\nfunction makeFunctionForUniqueBy(value) {\n return (item) => get(item, value);\n}\nfunction uniqueBy(array, getValue, fromStart = false) {\n const unique = [];\n const found = /* @__PURE__ */ new Set();\n const getter = isFunction(getValue) ? getValue : makeFunctionForUniqueBy(getValue);\n const list = fromStart ? [...array].reverse() : array;\n for (const item of list) {\n const value = getter(item);\n if (!found.has(value)) {\n found.add(value);\n unique.push(item);\n }\n }\n return fromStart ? unique.reverse() : unique;\n}\nfunction range(start, end) {\n const startValue = isArray(start) ? start[0] : start;\n if (!isNumber(end)) {\n return Array.from(\n { length: Math.abs(startValue) },\n (_, index) => (startValue < 0 ? -1 : 1) * index\n );\n }\n if (startValue <= end) {\n return Array.from({ length: end + 1 - startValue }, (_, index) => index + startValue);\n }\n return Array.from({ length: startValue + 1 - end }, (_, index) => -1 * index + startValue);\n}\nfunction within(value, ...rest) {\n const numbers = rest.filter(isNumber);\n return value >= Math.min(...numbers) && value <= Math.max(...numbers);\n}\nfunction hasOwnProperty(object_, key) {\n return Object.prototype.hasOwnProperty.call(object_, key);\n}\nfunction getLazyArray(value) {\n if (isFunction(value)) {\n return value();\n }\n return value;\n}\n\n// packages/remirror__core-helpers/src/core-errors.ts\nvar ERROR_INFORMATION_URL = \"https://remirror.io/docs/errors\";\nvar errorMessageMap = {\n [ErrorConstant.UNKNOWN]: \"An error occurred but we're not quite sure why. \\u{1F9D0}\",\n [ErrorConstant.INVALID_COMMAND_ARGUMENTS]: \"The arguments passed to the command method were invalid.\",\n [ErrorConstant.CUSTOM]: \"This is a custom error, possibly thrown by an external library.\",\n [ErrorConstant.CORE_HELPERS]: \"An error occurred in a function called from the `@remirror/core-helpers` library.\",\n [ErrorConstant.MUTATION]: \"Mutation of immutable value detected.\",\n [ErrorConstant.INTERNAL]: \"This is an error which should not occur and is internal to the remirror codebase.\",\n [ErrorConstant.MISSING_REQUIRED_EXTENSION]: \"Your editor is missing a required extension.\",\n [ErrorConstant.MANAGER_PHASE_ERROR]: \"This occurs when accessing a method or property before it is available.\",\n [ErrorConstant.INVALID_GET_EXTENSION]: \"The user requested an invalid extension from the getExtensions method. Please check the `createExtensions` return method is returning an extension with the defined constructor.\",\n [ErrorConstant.INVALID_MANAGER_ARGUMENTS]: \"Invalid value(s) passed into `Manager` constructor. Only `Presets` and `Extensions` are supported.\",\n [ErrorConstant.SCHEMA]: \"There is a problem with the schema or you are trying to access a node / mark that doesn't exists.\",\n [ErrorConstant.HELPERS_CALLED_IN_OUTER_SCOPE]: \"The `helpers` method which is passed into the ``create*` method should only be called within returned method since it relies on an active view (not present in the outer scope).\",\n [ErrorConstant.INVALID_MANAGER_EXTENSION]: \"You requested an invalid extension from the manager.\",\n [ErrorConstant.DUPLICATE_COMMAND_NAMES]: \"Command method names must be unique within the editor.\",\n [ErrorConstant.DUPLICATE_HELPER_NAMES]: \"Helper method names must be unique within the editor.\",\n [ErrorConstant.NON_CHAINABLE_COMMAND]: \"Attempted to chain a non chainable command.\",\n [ErrorConstant.INVALID_EXTENSION]: \"The provided extension is invalid.\",\n [ErrorConstant.INVALID_CONTENT]: \"The content provided to the editor is not supported.\",\n [ErrorConstant.INVALID_NAME]: \"An invalid name was used for the extension.\",\n [ErrorConstant.EXTENSION]: \"An error occurred within an extension. More details should be made available.\",\n [ErrorConstant.EXTENSION_SPEC]: \"The spec was defined without calling the `defaults`, `parse` or `dom` methods.\",\n [ErrorConstant.EXTENSION_EXTRA_ATTRIBUTES]: \"Extra attributes must either be a string or an object.\",\n [ErrorConstant.INVALID_SET_EXTENSION_OPTIONS]: \"A call to `extension.setOptions` was made with invalid keys.\",\n [ErrorConstant.REACT_PROVIDER_CONTEXT]: \"`useRemirrorContext` was called outside of the `remirror` context. It can only be used within an active remirror context created by the `<Remirror />`.\",\n [ErrorConstant.REACT_GET_ROOT_PROPS]: \"`getRootProps` has been attached to the DOM more than once. It should only be attached to the dom once per editor.\",\n [ErrorConstant.REACT_EDITOR_VIEW]: \"A problem occurred adding the editor view to the dom.\",\n [ErrorConstant.REACT_CONTROLLED]: \"There is a problem with your controlled editor setup.\",\n [ErrorConstant.REACT_NODE_VIEW]: \"Something went wrong with your custom ReactNodeView Component.\",\n [ErrorConstant.REACT_GET_CONTEXT]: \"You attempted to call `getContext` provided by the `useRemirror` prop during the first render of the editor. This is not possible and should only be after the editor first mounts.\",\n [ErrorConstant.REACT_COMPONENTS]: \"An error occurred within a remirror component.\",\n [ErrorConstant.REACT_HOOKS]: \"An error occurred within a remirror hook.\",\n [ErrorConstant.I18N_CONTEXT]: \"You called `useI18n()` outside of an `I18nProvider` context.\"\n};\nfunction isErrorConstant(code) {\n return isString(code) && includes(values(ErrorConstant), code);\n}\nfunction createErrorMessage(code, extraMessage) {\n const message = errorMessageMap[code];\n const prefix = message ? `${message}\n\n` : \"\";\n const customMessage = extraMessage ? `${extraMessage}\n\n` : \"\";\n return `${prefix}${customMessage}For more information visit ${ERROR_INFORMATION_URL}#${code.toLowerCase()}`;\n}\nvar RemirrorError = class extends BaseError2 {\n /**\n * The constructor is intentionally kept private to prevent being extended from.\n */\n constructor({ code, message, disableLogging = false } = {}) {\n const errorCode = isErrorConstant(code) ? code : ErrorConstant.CUSTOM;\n super(createErrorMessage(errorCode, message));\n this.errorCode = errorCode;\n this.url = `${ERROR_INFORMATION_URL}#${errorCode.toLowerCase()}`;\n if (!disableLogging) {\n console.error(this.message);\n }\n }\n /**\n * A shorthand way of creating an error message.\n */\n static create(options = {}) {\n return new RemirrorError(options);\n }\n};\nfunction invariant(condition, options) {\n if (condition) {\n return;\n }\n throw RemirrorError.create(options);\n}\n\n// packages/remirror__core-helpers/src/default-import.ts\nfunction defaultImport(mod) {\n if (typeof mod !== \"object\" || mod === null) {\n return mod;\n }\n const defaultVal = Symbol.toStringTag in mod && mod[Symbol.toStringTag] === \"Module\" ? mod.default ?? mod : mod;\n if (defaultVal && typeof mod === \"object\" && \"__esModule\" in defaultVal && defaultVal.__esModule && defaultVal.default !== void 0) {\n return defaultVal.default;\n }\n return defaultVal;\n}\n\n// packages/remirror__core-helpers/src/freeze.ts\nimport { ErrorConstant as ErrorConstant2 } from \"@remirror/core-constants\";\nfunction freeze(target, options = {}) {\n if (process.env.NODE_ENV === \"production\") {\n return target;\n }\n invariant(isObject(target) || isArray(target), {\n message: \"`freeze` only supports objects and arrays.\",\n code: ErrorConstant2.CORE_HELPERS\n });\n return new Proxy(target, {\n get: (target2, prop, receiver) => {\n invariant(prop in target2 || !options.requireKeys, {\n message: `The prop: '${prop.toString()}' you are trying to access does not yet exist on the target.`\n });\n return Reflect.get(target2, prop, receiver);\n },\n set: (_, prop) => {\n invariant(false, {\n message: `It seems you're trying to set the value of the property (${String(\n prop\n )}) on a frozen object. For your protection this object does not allow direct mutation.`,\n code: ErrorConstant2.MUTATION\n });\n }\n });\n}\nexport {\n Cast,\n RemirrorError,\n assert,\n assertGet,\n callIfDefined,\n camelCase,\n capitalCase,\n capitalize,\n clamp,\n cleanupOS,\n clone,\n constantCase,\n debounce,\n deepMerge,\n defaultImport,\n entries,\n findMatches,\n flattenArray,\n format,\n freeze,\n get,\n getLazyArray,\n hasOwnProperty,\n includes,\n invariant,\n isAndroidOS,\n isArray,\n isBoolean,\n isClass,\n isDate,\n isDirectInstanceOf,\n isEmptyArray,\n isEmptyObject,\n isEqual,\n isError,\n isFunction,\n isInstanceOf,\n isInteger,\n isJSONPrimitive,\n isMap,\n isNativePromise,\n isNonEmptyArray,\n isNull,\n isNullOrUndefined,\n isNumber,\n isObject,\n isPlainObject,\n isPrimitive,\n isPromise,\n isRegExp,\n isSafeInteger,\n isSet,\n isString,\n isSymbol,\n isUndefined,\n kebabCase,\n keys,\n last,\n noop,\n object,\n omit,\n omitUndefined,\n pascalCase,\n pathCase,\n pick,\n randomFloat,\n randomInt,\n range,\n set,\n shallowClone,\n snakeCase,\n sort,\n spaceCase,\n startCase,\n take,\n throttle,\n toString,\n uniqueArray,\n uniqueBy,\n uniqueId,\n unset,\n values,\n within\n};\n", "// packages/remirror__core-constants/src/core-constants.ts\nvar SELECTED_NODE_CLASS_NAME = \"ProseMirror-selectednode\";\nvar SELECTED_NODE_CLASS_SELECTOR = `.${SELECTED_NODE_CLASS_NAME}`;\nvar LEAF_NODE_REPLACING_CHARACTER = \"\\uFFFC\";\nvar NULL_CHARACTER = \"\\0\";\nvar STATE_OVERRIDE = \"__state_override__\";\nvar REMIRROR_WEBVIEW_NAME = \"$$__REMIRROR_WEBVIEW_BUNDLE__$$\";\nvar ZERO_WIDTH_SPACE_CHAR = \"\\u200B\";\nvar NON_BREAKING_SPACE_CHAR = \"\\xA0\";\nvar EMPTY_PARAGRAPH_NODE = {\n type: \"doc\",\n content: [\n {\n type: \"paragraph\"\n }\n ]\n};\nvar EMPTY_NODE = {\n type: \"doc\",\n content: []\n};\nfunction mutateTag(mutator) {\n mutator(BaseExtensionTag);\n}\nvar BaseExtensionTag = {\n /**\n * Describes a node that can be used as the last node of a document and\n * doesn't need to have anything else rendered after itself.\n *\n * @remarks\n *\n * e.g. `paragraph`\n */\n LastNodeCompatible: \"lastNodeCompatible\",\n /**\n * A mark that is used to change the formatting of the node it wraps.\n *\n * @remarks\n *\n * e.g. `bold`, `italic`\n */\n FormattingMark: \"formattingMark\",\n /**\n * A node that formats text in a non-standard way.\n *\n * @remarks\n *\n * e.g. `codeBlock`, `heading`, `blockquote`\n */\n FormattingNode: \"formattingNode\",\n /**\n * Identifies a node which has problems with cursor navigation.\n *\n * @remarks\n *\n * When this tag is added to an extension this will be picked up by\n * behavioural extensions such as the NodeCursorExtension which makes hard to\n * reach nodes reachable using keyboard arrows.\n */\n NodeCursor: \"nodeCursor\",\n /**\n * Mark group for font styling (e.g. bold, italic, underline, superscript).\n */\n FontStyle: \"fontStyle\",\n /**\n * Mark groups for links.\n */\n Link: \"link\",\n /**\n * Mark groups for colors (text-color, background-color, etc).\n */\n Color: \"color\",\n /**\n * Mark group for alignment.\n */\n Alignment: \"alignment\",\n /**\n * Mark group for indentation.\n */\n Indentation: \"indentation\",\n /**\n * Extension which affect the behaviour of the content. Can be nodes marks or\n * plain.\n */\n Behavior: \"behavior\",\n /**\n * Marks and nodes which contain code.\n */\n Code: \"code\",\n /**\n * Whether this node is an inline node.\n *\n * - `text` is an inline node, but `paragraph` is a block node.\n */\n InlineNode: \"inline\",\n /**\n * This is a node that can contain list items.\n */\n ListContainerNode: \"listContainer\",\n /**\n * Tags the extension as a list item node which can be contained by\n * [[`ExtensionTag.ListNode`]].\n */\n ListItemNode: \"listItemNode\",\n /**\n * Sets this as a block level node.\n */\n Block: \"block\",\n /**\n * @deprecate use `ExtensionTags.Block` instead.\n */\n BlockNode: \"block\",\n /**\n * Set this as a text block\n */\n TextBlock: \"textBlock\",\n /**\n * A tag that excludes this from input rules.\n */\n ExcludeInputRules: \"excludeFromInputRules\",\n /**\n * A mark or node that can't be exited when at the end and beginning of the\n * document with an arrow key or backspace key.\n */\n PreventExits: \"preventsExits\",\n /**\n * Represents a media compatible node.\n */\n Media: \"media\"\n};\nvar ExtensionTag = BaseExtensionTag;\nvar __INTERNAL_REMIRROR_IDENTIFIER_KEY__ = Symbol.for(\"__remirror__\");\nvar RemirrorIdentifier = /* @__PURE__ */ ((RemirrorIdentifier2) => {\n RemirrorIdentifier2[\"PlainExtension\"] = \"RemirrorPlainExtension\";\n RemirrorIdentifier2[\"NodeExtension\"] = \"RemirrorNodeExtension\";\n RemirrorIdentifier2[\"MarkExtension\"] = \"RemirrorMarkExtension\";\n RemirrorIdentifier2[\"PlainExtensionConstructor\"] = \"RemirrorPlainExtensionConstructor\";\n RemirrorIdentifier2[\"NodeExtensionConstructor\"] = \"RemirrorNodeExtensionConstructor\";\n RemirrorIdentifier2[\"MarkExtensionConstructor\"] = \"RemirrorMarkExtensionConstructor\";\n RemirrorIdentifier2[\"Manager\"] = \"RemirrorManager\";\n RemirrorIdentifier2[\"Preset\"] = \"RemirrorPreset\";\n RemirrorIdentifier2[\"PresetConstructor\"] = \"RemirrorPresetConstructor\";\n return RemirrorIdentifier2;\n})(RemirrorIdentifier || {});\nvar ExtensionPriority = /* @__PURE__ */ ((ExtensionPriority2) => {\n ExtensionPriority2[ExtensionPriority2[\"Critical\"] = 1e6] = \"Critical\";\n ExtensionPriority2[ExtensionPriority2[\"Highest\"] = 1e5] = \"Highest\";\n ExtensionPriority2[ExtensionPriority2[\"High\"] = 1e4] = \"High\";\n ExtensionPriority2[ExtensionPriority2[\"Medium\"] = 1e3] = \"Medium\";\n ExtensionPriority2[ExtensionPriority2[\"Default\"] = 100] = \"Default\";\n ExtensionPriority2[ExtensionPriority2[\"Low\"] = 10] = \"Low\";\n ExtensionPriority2[ExtensionPriority2[\"Lowest\"] = 0] = \"Lowest\";\n return ExtensionPriority2;\n})(ExtensionPriority || {});\nvar ManagerPhase = /* @__PURE__ */ ((ManagerPhase2) => {\n ManagerPhase2[ManagerPhase2[\"None\"] = 0] = \"None\";\n ManagerPhase2[ManagerPhase2[\"Create\"] = 1] = \"Create\";\n ManagerPhase2[ManagerPhase2[\"EditorView\"] = 2] = \"EditorView\";\n ManagerPhase2[ManagerPhase2[\"Runtime\"] = 3] = \"Runtime\";\n ManagerPhase2[ManagerPhase2[\"Destroy\"] = 4] = \"Destroy\";\n return ManagerPhase2;\n})(ManagerPhase || {});\nvar NamedShortcut = /* @__PURE__ */ ((NamedShortcut2) => {\n NamedShortcut2[\"Undo\"] = \"_|undo|_\";\n NamedShortcut2[\"Redo\"] = \"_|redo|_\";\n NamedShortcut2[\"Bold\"] = \"_|bold|_\";\n NamedShortcut2[\"Italic\"] = \"_|italic|_\";\n NamedShortcut2[\"Underline\"] = \"_|underline|_\";\n NamedShortcut2[\"Strike\"] = \"_|strike|_\";\n NamedShortcut2[\"Code\"] = \"_|code|_\";\n NamedShortcut2[\"Paragraph\"] = \"_|paragraph|_\";\n NamedShortcut2[\"H1\"] = \"_|h1|_\";\n NamedShortcut2[\"H2\"] = \"_|h2|_\";\n NamedShortcut2[\"H3\"] = \"_|h3|_\";\n NamedShortcut2[\"H4\"] = \"_|h4|_\";\n NamedShortcut2[\"H5\"] = \"_|h5|_\";\n NamedShortcut2[\"H6\"] = \"_|h6|_\";\n NamedShortcut2[\"TaskList\"] = \"_|task|_\";\n NamedShortcut2[\"BulletList\"] = \"_|bullet|_\";\n NamedShortcut2[\"OrderedList\"] = \"_|number|_\";\n NamedShortcut2[\"Quote\"] = \"_|quote|_\";\n NamedShortcut2[\"Divider\"] = \"_|divider|_\";\n NamedShortcut2[\"Codeblock\"] = \"_|codeblock|_\";\n NamedShortcut2[\"ClearFormatting\"] = \"_|clear|_\";\n NamedShortcut2[\"Superscript\"] = \"_|sup|_\";\n NamedShortcut2[\"Subscript\"] = \"_|sub|_\";\n NamedShortcut2[\"LeftAlignment\"] = \"_|left-align|_\";\n NamedShortcut2[\"CenterAlignment\"] = \"_|center-align|_\";\n NamedShortcut2[\"RightAlignment\"] = \"_|right-align|_\";\n NamedShortcut2[\"JustifyAlignment\"] = \"_|justify-align|_\";\n NamedShortcut2[\"InsertLink\"] = \"_|link|_\";\n NamedShortcut2[\"Find\"] = \"_|find|_\";\n NamedShortcut2[\"FindBackwards\"] = \"_|find-backwards|_\";\n NamedShortcut2[\"FindReplace\"] = \"_|find-replace|_\";\n NamedShortcut2[\"AddFootnote\"] = \"_|footnote|_\";\n NamedShortcut2[\"AddComment\"] = \"_|comment|_\";\n NamedShortcut2[\"ContextMenu\"] = \"_|context-menu|_\";\n NamedShortcut2[\"IncreaseFontSize\"] = \"_|inc-font-size|_\";\n NamedShortcut2[\"DecreaseFontSize\"] = \"_|dec-font-size|_\";\n NamedShortcut2[\"IncreaseIndent\"] = \"_|indent|_\";\n NamedShortcut2[\"DecreaseIndent\"] = \"_|dedent|_\";\n NamedShortcut2[\"Shortcuts\"] = \"_|shortcuts|_\";\n NamedShortcut2[\"Copy\"] = \"_|copy|_\";\n NamedShortcut2[\"Cut\"] = \"_|cut|_\";\n NamedShortcut2[\"Paste\"] = \"_|paste|_\";\n NamedShortcut2[\"PastePlain\"] = \"_|paste-plain|_\";\n NamedShortcut2[\"SelectAll\"] = \"_|select-all|_\";\n NamedShortcut2[\"Format\"] = \"_|format|_\";\n return NamedShortcut2;\n})(NamedShortcut || {});\nvar EMPTY_ARRAY = [];\n\n// packages/remirror__core-constants/src/error-constants.ts\nvar ErrorConstant = /* @__PURE__ */ ((ErrorConstant2) => {\n ErrorConstant2[\"PROD\"] = \"RMR0000\";\n ErrorConstant2[\"UNKNOWN\"] = \"RMR0001\";\n ErrorConstant2[\"INVALID_COMMAND_ARGUMENTS\"] = \"RMR0002\";\n ErrorConstant2[\"CUSTOM\"] = \"RMR0003\";\n ErrorConstant2[\"CORE_HELPERS\"] = \"RMR0004\";\n ErrorConstant2[\"MUTATION\"] = \"RMR0005\";\n ErrorConstant2[\"INTERNAL\"] = \"RMR0006\";\n ErrorConstant2[\"MISSING_REQUIRED_EXTENSION\"] = \"RMR0007\";\n ErrorConstant2[\"MANAGER_PHASE_ERROR\"] = \"RMR0008\";\n ErrorConstant2[\"INVALID_GET_EXTENSION\"] = \"RMR0010\";\n ErrorConstant2[\"INVALID_MANAGER_ARGUMENTS\"] = \"RMR0011\";\n ErrorConstant2[\"SCHEMA\"] = \"RMR0012\";\n ErrorConstant2[\"HELPERS_CALLED_IN_OUTER_SCOPE\"] = \"RMR0013\";\n ErrorConstant2[\"INVALID_MANAGER_EXTENSION\"] = \"RMR0014\";\n ErrorConstant2[\"DUPLICATE_COMMAND_NAMES\"] = \"RMR0016\";\n ErrorConstant2[\"DUPLICATE_HELPER_NAMES\"] = \"RMR0017\";\n ErrorConstant2[\"NON_CHAINABLE_COMMAND\"] = \"RMR0018\";\n ErrorConstant2[\"INVALID_EXTENSION\"] = \"RMR0019\";\n ErrorConstant2[\"INVALID_CONTENT\"] = \"RMR0021\";\n ErrorConstant2[\"INVALID_NAME\"] = \"RMR0050\";\n ErrorConstant2[\"EXTENSION\"] = \"RMR0100\";\n ErrorConstant2[\"EXTENSION_SPEC\"] = \"RMR0101\";\n ErrorConstant2[\"EXTENSION_EXTRA_ATTRIBUTES\"] = \"RMR0102\";\n ErrorConstant2[\"INVALID_SET_EXTENSION_OPTIONS\"] = \"RMR0103\";\n ErrorConstant2[\"REACT_PROVIDER_CONTEXT\"] = \"RMR0200\";\n ErrorConstant2[\"REACT_GET_ROOT_PROPS\"] = \"RMR0201\";\n ErrorConstant2[\"REACT_EDITOR_VIEW\"] = \"RMR0202\";\n ErrorConstant2[\"REACT_CONTROLLED\"] = \"RMR0203\";\n ErrorConstant2[\"REACT_NODE_VIEW\"] = \"RMR0204\";\n ErrorConstant2[\"REACT_GET_CONTEXT\"] = \"RMR0205\";\n ErrorConstant2[\"REACT_COMPONENTS\"] = \"RMR0206\";\n ErrorConstant2[\"REACT_HOOKS\"] = \"RMR0207\";\n ErrorConstant2[\"I18N_CONTEXT\"] = \"RMR0300\";\n return ErrorConstant2;\n})(ErrorConstant || {});\nexport {\n EMPTY_ARRAY,\n EMPTY_NODE,\n EMPTY_PARAGRAPH_NODE,\n ErrorConstant,\n ExtensionPriority,\n ExtensionTag,\n LEAF_NODE_REPLACING_CHARACTER,\n ManagerPhase,\n NON_BREAKING_SPACE_CHAR,\n NULL_CHARACTER,\n NamedShortcut,\n REMIRROR_WEBVIEW_NAME,\n RemirrorIdentifier,\n SELECTED_NODE_CLASS_NAME,\n SELECTED_NODE_CLASS_SELECTOR,\n STATE_OVERRIDE,\n ZERO_WIDTH_SPACE_CHAR,\n __INTERNAL_REMIRROR_IDENTIFIER_KEY__,\n mutateTag\n};\n", "/* eslint-disable no-undefined,no-param-reassign,no-shadow */\n\n/**\n * Throttle execution of a function. Especially useful for rate limiting\n * execution of handlers on events like resize and scroll.\n *\n * @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {boolean} [noTrailing] - Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds while the\n * throttled-function is being called. If noTrailing is false or unspecified, callback will be executed one final time\n * after the last throttled-function call. (After the throttled-function has not been called for `delay` milliseconds,\n * the internal counter is reset).\n * @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the throttled-function is executed.\n * @param {boolean} [debounceMode] - If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is false (at end),\n * schedule `callback` to execute after `delay` ms.\n *\n * @returns {Function} A new, throttled, function.\n */\nexport default function (delay, noTrailing, callback, debounceMode) {\n\t/*\n\t * After wrapper has stopped being called, this timeout ensures that\n\t * `callback` is executed at the proper times in `throttle` and `end`\n\t * debounce modes.\n\t */\n\tlet timeoutID;\n\tlet cancelled = false;\n\n\t// Keep track of the last time `callback` was executed.\n\tlet lastExec = 0;\n\n\t// Function to clear existing timeout\n\tfunction clearExistingTimeout() {\n\t\tif (timeoutID) {\n\t\t\tclearTimeout(timeoutID);\n\t\t}\n\t}\n\n\t// Function to cancel next exec\n\tfunction cancel() {\n\t\tclearExistingTimeout();\n\t\tcancelled = true;\n\t}\n\n\t// `noTrailing` defaults to falsy.\n\tif (typeof noTrailing !== 'boolean') {\n\t\tdebounceMode = callback;\n\t\tcallback = noTrailing;\n\t\tnoTrailing = undefined;\n\t}\n\n\t/*\n\t * The `wrapper` function encapsulates all of the throttling / debouncing\n\t * functionality and when executed will limit the rate at which `callback`\n\t * is executed.\n\t */\n\tfunction wrapper(...arguments_) {\n\t\tlet self = this;\n\t\tlet elapsed = Date.now() - lastExec;\n\n\t\tif (cancelled) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Execute `callback` and update the `lastExec` timestamp.\n\t\tfunction exec() {\n\t\t\tlastExec = Date.now();\n\t\t\tcallback.apply(self, arguments_);\n\t\t}\n\n\t\t/*\n\t\t * If `debounceMode` is true (at begin) this is used to clear the flag\n\t\t * to allow future `callback` executions.\n\t\t */\n\t\tfunction clear() {\n\t\t\ttimeoutID = undefined;\n\t\t}\n\n\t\tif (debounceMode && !timeoutID) {\n\t\t\t/*\n\t\t\t * Since `wrapper` is being called for the first time and\n\t\t\t * `debounceMode` is true (at begin), execute `callback`.\n\t\t\t */\n\t\t\texec();\n\t\t}\n\n\t\tclearExistingTimeout();\n\n\t\tif (debounceMode === undefined && elapsed > delay) {\n\t\t\t/*\n\t\t\t * In throttle mode, if `delay` time has been exceeded, execute\n\t\t\t * `callback`.\n\t\t\t */\n\t\t\texec();\n\t\t} else if (noTrailing !== true) {\n\t\t\t/*\n\t\t\t * In trailing throttle mode, since `delay` time has not been\n\t\t\t * exceeded, schedule `callback` to execute `delay` ms after most\n\t\t\t * recent execution.\n\t\t\t *\n\t\t\t * If `debounceMode` is true (at begin), schedule `clear` to execute\n\t\t\t * after `delay` ms.\n\t\t\t *\n\t\t\t * If `debounceMode` is false (at end), schedule `callback` to\n\t\t\t * execute after `delay` ms.\n\t\t\t */\n\t\t\ttimeoutID = setTimeout(\n\t\t\t\tdebounceMode ? clear : exec,\n\t\t\t\tdebounceMode === undefined ? delay - elapsed : delay\n\t\t\t);\n\t\t}\n\t}\n\n\twrapper.cancel = cancel;\n\n\t// Return the wrapper function.\n\treturn wrapper;\n}\n", "/* eslint-disable no-undefined */\n\nimport throttle from './throttle';\n\n/**\n * Debounce execution of a function. Debouncing, unlike throttling,\n * guarantees that a function is only executed a single time, either at the\n * very beginning of a series of calls, or at the very end.\n *\n * @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {boolean} [atBegin] - Optional, defaults to false. If atBegin is false or unspecified, callback will only be executed `delay` milliseconds\n * after the last debounced-function call. If atBegin is true, callback will be executed only at the first debounced-function call.\n * (After the throttled-function has not been called for `delay` milliseconds, the internal counter is reset).\n * @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the debounced-function is executed.\n *\n * @returns {Function} A new, debounced function.\n */\nexport default function (delay, atBegin, callback) {\n\treturn callback === undefined\n\t\t? throttle(delay, atBegin, false)\n\t\t: throttle(delay, callback, atBegin !== false);\n}\n", "import { type FC } from 'react'\nimport styled, { css } from 'styled-components'\n\nexport enum ResizableHandleType {\n Right,\n Left,\n Top,\n Bottom,\n TopRight,\n TopLeft,\n BottomRight,\n BottomLeft,\n}\n\ninterface ResizableHandleProps extends BaseComponentProps {\n visible: boolean\n handleType: ResizableHandleType\n onResizing?: (e: React.MouseEvent, handleType: ResizableHandleType) => void\n}\n\nconst ResizableHandleContainer = styled.span<ResizableHandleProps>`\n position: absolute;\n border-radius: 12px;\n border: 2px solid #fff;\n background: rgba(0, 0, 0, 0.65);\n border: 1px solid rgba(255, 255, 255, 0.5);\n border-radius: 6px;\n transition: opacity 300ms ease-in 0s;\n z-index: 99;\n\n ${(props) => {\n if (props.visible) {\n return css`\n opacity: 1;\n `\n } else {\n return css`\n opacity: 0;\n `\n }\n }}\n\n ${(props) => {\n switch (props.handleType) {\n case ResizableHandleType.BottomLeft:\n return css`\n left: -6px;\n bottom: -10px;\n cursor: sw-resize;\n `\n case ResizableHandleType.BottomRight:\n return css`\n right: -6px;\n bottom: -10px;\n cursor: se-resize;\n `\n case ResizableHandleType.TopLeft:\n return css`\n left: -6px;\n top: -6px;\n cursor: nw-resize;\n `\n case ResizableHandleType.TopRight:\n return css`\n right: -6px;\n top: -6px;\n cursor: ne-resize;\n `\n case ResizableHandleType.Left:\n return css`\n left: 6px;\n top: calc(50% - 20px);\n height: 30px;\n width: 6px;\n cursor: col-resize;\n `\n case ResizableHandleType.Right:\n return css`\n right: 6px;\n top: calc(50% - 20px);\n height: 30px;\n width: 6px;\n cursor: col-resize;\n `\n case ResizableHandleType.Top:\n return css`\n left: calc(50% - 20px);\n top: 6px;\n height: 6px;\n width: 30px;\n cursor: row-resize;\n `\n case ResizableHandleType.Bottom:\n return css`\n right: calc(50% - 20px);\n bottom: 6px;\n height: 6px;\n width: 30px;\n cursor: row-resize;\n `\n default:\n break\n }\n }}\n`\n\nexport const ResizableHandle: FC<ResizableHandleProps> = (props) => {\n const handleResizing: React.MouseEventHandler = (e) => {\n if (props.onResizing) {\n props.onResizing(e, props.handleType)\n }\n }\n\n return (\n <ResizableHandleContainer\n className='resizeable-handle'\n visible={props.visible}\n handleType={props.handleType}\n onMouseDown={handleResizing}\n />\n )\n}\n", "import { parse, stringify } from 'querystringify'\nimport type {\n ApplySchemaAttributes,\n CommandFunction,\n InputRule,\n LiteralUnion,\n NodeExtensionSpec,\n NodeSpecOverride,\n ProsemirrorAttributes,\n Shape} from '@remirror/core'\nimport {\n command,\n cx,\n extension,\n ExtensionTag,\n findSelectedNodeOfType,\n NodeExtension,\n nodeInputRule,\n object,\n omitExtraAttributes\n} from '@remirror/core'\nimport type { NodeViewComponentProps } from '@remirror/react'\nimport type { ComponentType } from 'react'\nimport type { IframeOptions } from './iframe-types'\nimport { IframeNodeView } from './Iframe-nodeview'\nimport type { NodeSerializerOptions} from '@/transform'\nimport { ParserRuleType } from '@/transform'\nimport { buildHtmlStringFromAst, getAttrsBySignalHtmlContent } from '@/utils/html'\n\nexport type IframeAttributes = ProsemirrorAttributes<{\n src: string;\n frameBorder?: number | string;\n allowFullScreen?: 'true' | boolean;\n width?: number;\n height?: number;\n type?: LiteralUnion<'youtube', string>;\n}>;\n\n/**\n * An extension for the remirror editor.\n */\n@extension<IframeOptions>({\n defaultOptions: {\n defaultSource: '',\n class: 'remirror-iframe',\n enableResizing: false,\n },\n staticKeys: ['defaultSource', 'class'],\n})\nexport class IframeExtension extends NodeExtension<IframeOptions> {\n get name() {\n return 'iframe_inline' as const\n }\n\n createTags() {\n return [ExtensionTag.InlineNode, ExtensionTag.Media]\n }\n\n ReactComponent: ComponentType<NodeViewComponentProps> | undefined = (props) => {\n return <IframeNodeView {...props}/>\n }\n\n createNodeSpec(extra: ApplySchemaAttributes, override: NodeSpecOverride): NodeExtensionSpec {\n const { defaultSource } = this.options\n\n return {\n inline: true,\n selectable: true,\n atom: true,\n ...override,\n attrs: {\n ...extra.defaults(),\n src: defaultSource ? { default: defaultSource } : {},\n allowFullScreen: { default: true },\n frameBorder: { default: 0 },\n type: { default: 'custom' },\n width: { default: null },\n height: { default: null },\n },\n parseDOM: [\n {\n tag: 'iframe',\n getAttrs: (dom): IframeAttributes => {\n const frameBorder = (dom as HTMLElement).getAttribute('frameborder')\n const width = (dom as HTMLElement).getAttribute('width')\n const height = (dom as HTMLElement).getAttribute('height')\n return {\n ...extra.parse(dom),\n type: (dom as HTMLElement).getAttribute('data-embed-type') ?? undefined,\n height: (height && Number.parseInt(height, 10)) || undefined,\n width: (width && Number.parseInt(width, 10)) || undefined,\n allowFullScreen:\n (dom as HTMLElement).getAttribute('allowfullscreen') === 'false' ? false : true,\n frameBorder: frameBorder ? Number.parseInt(frameBorder, 10) : 0,\n src: (dom as HTMLElement).getAttribute('src') ?? '',\n }\n },\n },\n ...(override.parseDOM ?? []),\n ],\n toDOM: (node) => {\n const { frameBorder, allowFullScreen, src, type, ...rest } = omitExtraAttributes(\n node.attrs,\n extra,\n )\n const { class: className } = this.options\n\n return [\n 'iframe',\n {\n ...extra.dom(node),\n ...rest,\n class: cx(className, `${className}-${type as string}`),\n src,\n 'data-embed-type': type,\n allowfullscreen: allowFullScreen ? 'true' : 'false',\n frameBorder: frameBorder?.toString(),\n },\n ]\n },\n }\n }\n\n /**\n * Add a custom iFrame to the editor.\n */\n @command()\n addIframe(attributes: IframeAttributes): CommandFunction {\n return ({ tr, dispatch }) => {\n dispatch?.(tr.replaceSelectionWith(this.type.create(attributes)))\n\n return true\n }\n }\n\n /**\n * Add a YouTube embedded iFrame to the editor.\n */\n @command()\n addYouTubeVideo(props: CreateYouTubeIframeProps): CommandFunction {\n return this.addIframe({\n src: createYouTubeUrl(props),\n frameBorder: 0,\n type: 'youtube',\n allowFullScreen: 'true',\n })\n }\n\n /**\n * Update the iFrame source for the currently selected video.\n */\n @command()\n updateIframeSource(src: string): CommandFunction {\n return ({ tr, dispatch }) => {\n const iframeNode = findSelectedNodeOfType({ selection: tr.selection, types: this.type })\n\n // Selected node is NOT an iframe node, return false indicating this command is NOT enabled\n if (!iframeNode) {\n return false\n }\n\n // Call dispatch method if present (using optional chaining), to modify the actual document\n dispatch?.(tr.setNodeMarkup(iframeNode.pos, undefined, { ...iframeNode.node.attrs, src }))\n\n // Return true, indicating this command IS enabled\n return true\n }\n }\n\n /**\n * Update the YouTube video iFrame.\n */\n @command()\n updateYouTubeVideo(props: CreateYouTubeIframeProps): CommandFunction {\n return this.updateIframeSource(createYouTubeUrl(props))\n }\n\n createInputRules(): InputRule[] {\n const rules: InputRule[] = [\n nodeInputRule({\n regexp: new RegExp('<iframe[^>]*>'),\n type: this.type,\n getAttributes: (match) => {\n return getAttrsBySignalHtmlContent(match[0])\n },\n }),\n ]\n\n return rules\n }\n\n public fromMarkdown() {\n return [\n {\n type: ParserRuleType.inline,\n token: 'iframe_inline',\n node: this.name,\n },\n ] as const\n }\n\n public toMarkdown({ state, node }: NodeSerializerOptions) {\n state.text(\n buildHtmlStringFromAst({\n tag: 'iframe',\n attrs: node.attrs,\n voidElement: true,\n }),\n false,\n )\n }\n}\n\ninterface CreateYouTubeIframeProps {\n /**\n * The video id (dQw4w9WgXcQ) or full link\n * (https://www.youtube.com/watch?v=dQw4w9WgXcQ).\n */\n video: string;\n\n /**\n * The number os seconds in to start at.\n * @defaultValue 0\n */\n startAt?: number;\n\n /**\n * When true will show the player controls.\n *\n * @defaultValue true\n */\n showControls?: boolean;\n\n /**\n * According to YouTube: _When you turn on privacy-enhanced mode, YouTube\n * won't store information about visitors on your website unless they play the\n * video._\n *\n * @defaultValue true\n */\n enhancedPrivacy?: boolean;\n}\n\n/**\n * A Url parser that relies on the browser for the majority of the work.\n */\nfunction parseUrl<Query extends Shape = Shape>(url: string) {\n const parser = document.createElement('a')\n\n // Let the browser do the work\n parser.href = url\n\n const searchObject = parse(parser.search) as Query\n\n return {\n protocol: parser.protocol,\n host: parser.host,\n hostname: parser.hostname,\n port: parser.port,\n pathname: parser.pathname,\n search: parser.search,\n searchObject,\n hash: parser.hash,\n }\n}\n\nfunction createYouTubeUrl(props: CreateYouTubeIframeProps) {\n const { video, enhancedPrivacy = true, showControls = true, startAt = 0 } = props\n const id: string = parseUrl<{ v?: string }>(video)?.searchObject?.v ?? video\n const urlStart = enhancedPrivacy ? 'https://www.youtube-nocookie.com' : 'https://www.youtube.com'\n const searchObject = object<Shape>()\n\n if (!showControls) {\n searchObject.controls = '0'\n }\n\n if (startAt) {\n searchObject['amp;start'] = startAt\n }\n\n return `${urlStart}/embed/${id}?${stringify(searchObject)}`\n}\n", "import type { NodeViewComponentProps } from '@remirror/react'\nimport { Popover } from '@markflowy/components'\nimport { Resizable } from '@/components/Resizable'\nimport { useRef } from 'react'\n\nexport function IframeNodeView(props: NodeViewComponentProps) {\n const { node, selected } = props\n const initRef = useRef<() => void>()\n\n return (\n <Popover placement='top-start' open={selected} arrow={false}>\n <Resizable controlInit={(init) => (initRef.current = init)} {...props}>\n <iframe onLoad={() => initRef.current?.()} {...node.attrs}/>\n </Resizable>\n </Popover>\n )\n}\n", "import type { EditorView } from \"prosemirror-view\"\nimport type { PluginKey } from \"prosemirror-state\"\nimport type { SlashMenuMeta } from \"./type\"\n\nexport const dispatchWithMeta = (\n view: EditorView,\n key: PluginKey,\n meta: SlashMenuMeta\n) => view.dispatch(view.state.tr.setMeta(key, meta))\n\nexport const defaultIgnoredKeys = [\n \"Unidentified\",\n \"Alt\",\n \"AltGraph\",\n \"CapsLock\",\n \"Control\",\n \"Fn\",\n \"FnLock\",\n \"F1\",\n \"F2\",\n \"F3\",\n \"F4\",\n \"F5\",\n \"F6\",\n \"F7\",\n \"F8\",\n \"F9\",\n \"F10\",\n \"F11\",\n \"F12\",\n \"F13\",\n \"F14\",\n \"F15\",\n \"F16\",\n \"F17\",\n \"F18\",\n \"F19\",\n \"F20\",\n \"F21\",\n \"F22\",\n \"F23\",\n \"F24\",\n \"Hyper\",\n \"Meta\",\n \"NumLock\",\n \"PageDown\",\n \"PageUp\",\n \"Pause\",\n \"PrintScreen\",\n \"Redo\",\n \"ScrollLock\",\n \"Shift\",\n \"Super\",\n \"Symbol\",\n \"SymbolLock\",\n \"Enter\",\n \"Tab\",\n \"ArrowDown\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \"ArrowUp\",\n \"End\",\n \"Home\",\n \"PageDown\",\n \"PageUp\",\n \"Backspace\",\n \"Clear\",\n \"Copy\",\n \"CrSel\",\n \"Cut\",\n \"Delete\",\n \"EraseEof\",\n \"ExSel\",\n \"Insert\",\n \"Paste\",\n \"Redo\",\n \"Undo\",\n \"Accept\",\n \"Again\",\n \"Attn\",\n \"Cancel\",\n \"ContextMenu\",\n \"Escape\",\n \"Execute\",\n \"Find\",\n \"Finish\",\n \"Help\",\n \"Pause\",\n \"Play\",\n \"Props\",\n \"Select\",\n \"ZoomIn\",\n \"ZoomOut\",\n \"BrightnessDown\",\n \"BrightnessUp\",\n \"Eject\",\n \"LogOff\",\n \"Power\",\n \"PowerOff\",\n \"PrintScreen\",\n \"Hibernate\",\n \"Standby\",\n \"WakeUp\",\n \"AllCandidates\",\n \"Alphanumeric\",\n \"CodeInput\",\n \"Compose\",\n \"Convert\",\n \"Dead\",\n \"FinalMode\",\n \"GroupFirst\",\n \"GroupLast\",\n \"GroupNext\",\n \"GroupPrevious\",\n \"ModeChange\",\n \"NextCandidate\",\n \"NonConvert\",\n \"PreviousCandidate\",\n \"Process\",\n \"SingleCandidate\",\n \"HangulMode\",\n \"HanjaMode\",\n \"JunjaMode\",\n \"Eisu\",\n \"Hankaku\",\n \"Hiragana\",\n \"HiraganaKatakana\",\n \"KanaMode\",\n \"KanjiMode\",\n \"Katakana\",\n \"Romaji\",\n \"Zenkaku\",\n \"ZenkakuHanaku\",\n]\n", "import { type SlashMenuState, type SlashMenuMeta, SlashMetaTypes } from './type'\nimport { defaultIgnoredKeys, dispatchWithMeta } from './utils'\n\nimport type { CreateExtensionPlugin } from 'remirror'\nimport { PlainExtension, extension } from 'remirror'\nimport { getCase, SlashCases } from './case'\n\ntype SlashMenuOptions = {}\n@extension<SlashMenuOptions>({\n defaultOptions: {},\n})\nexport class SlashMenuExtension extends PlainExtension {\n get name() {\n return 'slash-menu' as const\n }\n\n createPlugin(): CreateExtensionPlugin<SlashMenuState> {\n const initialState: SlashMenuState = {\n open: false,\n filter: '',\n ignoredKeys: defaultIgnoredKeys,\n }\n\n return {\n props: {\n handleKeyDown(view, event) {\n const editorState = view.state\n\n const state = this.getState(editorState)\n if (!state) return false\n const slashCase = getCase(state, event, view, initialState.ignoredKeys)\n\n switch (slashCase) {\n case SlashCases.OpenMenu:\n dispatchWithMeta(view, this.spec.key!, { type: SlashMetaTypes.open })\n return true\n case SlashCases.CloseMenu: {\n if (event.key === '/') {\n view.dispatch(\n editorState.tr.insertText('/').setMeta(this.spec.key!, {\n type: SlashMetaTypes.close,\n }),\n )\n } else\n dispatchWithMeta(view, this.spec.key!, {\n type: SlashMetaTypes.close,\n })\n return true\n }\n\n case SlashCases.Execute:\n case SlashCases.NextItem:\n case SlashCases.PrevItem:\n case SlashCases.addChar:\n case SlashCases.removeChar:\n case SlashCases.Catch: {\n return true\n }\n\n default:\n return false\n }\n },\n },\n\n state: {\n init() {\n return initialState\n },\n apply(tr, state) {\n // @ts-ignore\n const meta: SlashMenuMeta = tr.getMeta(this.spec.key)\n switch (meta?.type) {\n case SlashMetaTypes.open:\n return { ...initialState, open: true }\n case SlashMetaTypes.close:\n return initialState\n case SlashMetaTypes.execute:\n return {\n ...initialState,\n open: true,\n }\n default:\n return state\n }\n },\n },\n initialState,\n }\n }\n}\n", "import type { EditorView } from '@remirror/pm/view'\nimport type { SlashMenuState, OpeningConditions } from './type'\n\nexport enum SlashCases {\n OpenMenu = 'openMenu',\n CloseMenu = 'closeMenu',\n Execute = 'Execute',\n NextItem = 'NextItem',\n PrevItem = 'PrevItem',\n inputChange = 'InputChange',\n addChar = 'addChar',\n removeChar = 'removeChar',\n Ignore = 'Ignore',\n Catch = 'Catch',\n}\nconst defaultConditions = (openInSelection = false): OpeningConditions => {\n return {\n shouldOpen: (state: SlashMenuState, event: KeyboardEvent, view: EditorView) => {\n const editorState = view.state\n const resolvedPos =\n editorState.selection.from < 0 || editorState.selection.from > editorState.doc.content.size\n ? null\n : editorState.doc.resolve(editorState.selection.from)\n\n const parentNode = resolvedPos?.parent\n const inParagraph = parentNode?.type.name === 'paragraph'\n const inEmptyPar = inParagraph && parentNode?.nodeSize === 2\n const posInLine = editorState.selection.$head.parentOffset\n const prevCharacter = editorState.selection.$head.parent.textContent.slice(\n posInLine - 1,\n posInLine,\n )\n const spaceBeforePos = prevCharacter === '\u200A' || prevCharacter === '' || prevCharacter === ' '\n return (\n !state.open &&\n event.key === '/' &&\n inParagraph &&\n (inEmptyPar ||\n spaceBeforePos ||\n (editorState.selection.from !== editorState.selection.to && openInSelection))\n )\n },\n shouldClose: (state: SlashMenuState, event: KeyboardEvent) =>\n state.open &&\n (event.key === '/' || event.key === 'Escape' || event.key === 'Backspace') &&\n state.filter.length === 0,\n }\n}\nexport const getCase = (\n state: SlashMenuState,\n event: KeyboardEvent,\n view: EditorView,\n ignoredKeys: string[],\n customConditions?: OpeningConditions,\n shouldOpenInSelection?: boolean,\n): SlashCases => {\n const condition = customConditions || defaultConditions(shouldOpenInSelection)\n if (condition.shouldOpen(state, event, view)) {\n return SlashCases.OpenMenu\n }\n if (condition.shouldClose(state, event, view)) {\n return SlashCases.CloseMenu\n }\n if (state.open) {\n if (event.key === 'ArrowDown') {\n return SlashCases.NextItem\n }\n if (event.key === 'ArrowUp') {\n return SlashCases.PrevItem\n }\n if (\n event.key === 'Enter' ||\n event.key === 'Tab'\n ) {\n return SlashCases.Execute\n }\n if (\n event.key === 'Escape' ||\n (event.key === 'Backspace' && state.filter.length === 0)\n ) {\n return SlashCases.CloseMenu\n }\n if (state.filter.length > 0 && event.key === 'Backspace') {\n return SlashCases.removeChar\n }\n if (!ignoredKeys.includes(event.key)) {\n return SlashCases.addChar\n }\n if (event.key === 'ArrowLeft' || event.key === 'ArrowRight') {\n return SlashCases.Catch\n }\n }\n\n return SlashCases.Ignore\n}\n", "import type {\n CreateExtensionPlugin,\n OnSetOptionsProps,\n ProsemirrorAttributes,\n} from '@remirror/core'\nimport { extension, ManagerPhase, PlainExtension } from '@remirror/core'\nimport type { EditorState } from '@remirror/pm/state'\nimport { Decoration, DecorationSet } from '@remirror/pm/view'\nimport { ExtensionPlaceholderTheme } from '@remirror/theme'\n\nexport interface PlaceholderOptions {\n /**\n * The placeholder text to use.\n */\n placeholder?: string\n\n /**\n * The class to decorate the empty top level node with. If you change this\n * then you will also need to apply your own styles.\n */\n emptyNodeClass?: string\n}\n\nexport interface PlaceholderPluginState extends Required<PlaceholderOptions> {\n empty: boolean\n}\n\n/**\n * The placeholder extension which adds a placeholder annotation to an empty\n * document.\n */\n@extension<PlaceholderOptions>({\n defaultOptions: {\n emptyNodeClass: ExtensionPlaceholderTheme.IS_EMPTY,\n placeholder: '',\n },\n staticKeys: [],\n handlerKeys: [],\n customHandlerKeys: []\n})\nexport class PlaceholderExtension extends PlainExtension<PlaceholderOptions> {\n get name() {\n return 'placeholder' as const\n }\n\n createAttributes(): ProsemirrorAttributes {\n return { 'aria-placeholder': this.options.placeholder }\n }\n\n createPlugin(): CreateExtensionPlugin {\n return {\n props: {\n decorations: (state) => createDecorationSet({ state, extension: this }),\n },\n }\n }\n\n protected onSetOptions(props: OnSetOptionsProps<PlaceholderOptions>): void {\n const { changes } = props\n\n if (changes.placeholder.changed && this.store.phase >= ManagerPhase.EditorView) {\n // update the attributes object\n this.store.updateAttributes()\n }\n }\n}\n\ninterface SharedProps {\n /**\n * A reference to the extension\n */\n extension: PlaceholderExtension\n /**\n * The editor state\n */\n state: EditorState\n}\n\n/**\n * Creates a decoration set from the passed through state.\n *\n * @param props - see [[`SharedProps`]]\n */\nfunction createDecorationSet(props: SharedProps) {\n const { extension: ext, state } = props\n const { emptyNodeClass, placeholder } = ext.options\n const decorations: any = []\n state.doc.descendants((node, pos) => {\n if (\n node.type.name === 'paragraph' &&\n node.content.size === 0 &&\n placeholder &&\n state.selection.from - 1 === pos\n ) {\n const placeholderDecoration = Decoration.node(pos, pos + node.nodeSize, {\n class: emptyNodeClass,\n 'data-placeholder': placeholder,\n })\n decorations.push(placeholderDecoration)\n }\n })\n return DecorationSet.create(state.doc, decorations)\n}\n", "import { Remirror } from '@remirror/react'\nimport { type FC, createContext, memo, useMemo, useCallback } from 'react'\nimport Text from '../Text'\nimport Wrapper from '../Wrapper'\nimport { createWysiwygDelegate } from './delegate'\nimport TableToolbar from '../../toolbar/TableToolbar'\nimport { ProsemirrorDevTools } from '@remirror/dev'\nimport ErrorBoundary from '../ErrorBoundary'\nimport type { Extension, RemirrorEventListener } from '@remirror/core'\nimport type { EditorProps } from '../Editor'\nimport { SlashMenu } from '../../toolbar/SlashMenu'\nimport type { DocToString, StringToDoc } from '../../types'\n\nexport const OffsetContext = createContext({ top: 0, left: 0 })\n\nexport const wysiwygTransformer: {\n stringToDoc: StringToDoc | null\n docToString: DocToString | null\n} = { stringToDoc: null, docToString: null }\n\nconst WysiwygEditor: FC<EditorProps> = (props) => {\n const { content, hooks, delegate, offset, wysiwygToolBar, isTesting, editable } = props\n\n const editorDelegate = useMemo(() => delegate ?? createWysiwygDelegate(), [delegate])\n\n const handleChange: RemirrorEventListener<Extension> = useCallback(\n (params) => {\n try {\n const textContent = editorDelegate.docToString(params.state.doc)\n props.onChange?.(params, textContent)\n } catch (error) {\n console.error(error)\n }\n },\n [editorDelegate, props],\n )\n\n if (wysiwygTransformer.stringToDoc === null) {\n wysiwygTransformer.stringToDoc = editorDelegate.stringToDoc\n wysiwygTransformer.docToString = editorDelegate.docToString\n }\n\n let initialContent\n try {\n initialContent = editorDelegate.stringToDoc(content)\n } catch (error) {\n return <ErrorBoundary hasError error={error} />\n }\n\n return (\n <ErrorBoundary>\n <Wrapper>\n <OffsetContext.Provider value={offset || { top: 0, left: 0 }}>\n <Remirror\n manager={editorDelegate.manager}\n initialContent={initialContent}\n hooks={hooks}\n editable={editable}\n onChange={handleChange}\n >\n <TableToolbar />\n <SlashMenu />\n {wysiwygToolBar || null}\n <Text className='w-full markdown-body' />\n {isTesting ? <ProsemirrorDevTools /> : null}\n </Remirror>\n </OffsetContext.Provider>\n </Wrapper>\n </ErrorBoundary>\n )\n}\n\nWysiwygEditor.defaultProps = {\n editable: true,\n}\n\nexport default memo(WysiwygEditor)\nexport * from './delegate'\n", "import styled from 'styled-components'\n\nexport default styled.div`\n width: 100%;\n`\n", "import { createReactManager } from '@remirror/react'\nimport { initDocMarks } from '../../extensions/Inline'\nimport type { AnyExtension } from 'remirror'\nimport type { RemirrorManager } from '@remirror/core'\nimport { isExtension } from '@remirror/core'\nimport type { ExtensionsOptions, MarkdownNodeExtension } from '../../extensions'\nimport type { ParserRule, NodeSerializerSpecs } from '../../transform'\nimport { MarkdownParser, MarkdownSerializer } from '../../transform'\nimport type { StringToDoc, DocToString, EditorDelegate } from '../../types'\nimport EditorExtensions from '../../extensions'\nimport \"prosemirror-flat-list/dist/style.css\"\nimport type { Node } from '@remirror/pm/model'\n\nfunction isMarkdownNodeExtension(extension: unknown): extension is MarkdownNodeExtension {\n return !!(\n isExtension(extension) &&\n (extension as unknown as MarkdownNodeExtension).fromMarkdown &&\n (extension as unknown as MarkdownNodeExtension).toMarkdown\n )\n}\n\nexport function buildMarkdownParser<Extension extends AnyExtension>(\n manager: RemirrorManager<Extension>,\n) {\n const parserRules: ParserRule[] = []\n for (const extension of manager.extensions) {\n if (isMarkdownNodeExtension(extension)) {\n parserRules.push(...extension.fromMarkdown())\n }\n }\n return new MarkdownParser(manager.schema, parserRules)\n}\n\nexport function buildMarkdownSerializer<Extension extends AnyExtension>(\n manager: RemirrorManager<Extension>,\n) {\n const specs: NodeSerializerSpecs = {}\n for (const extension of manager.extensions) {\n if (isMarkdownNodeExtension(extension)) {\n specs[extension.name] = extension.toMarkdown\n }\n }\n return new MarkdownSerializer(specs)\n}\n\nexport type CreateWysiwygDelegateOptions = {\n handleViewImgSrcUrl?: ExtensionsOptions['handleViewImgSrcUrl']\n}\n\nexport const createWysiwygDelegate = ({\n handleViewImgSrcUrl,\n}: CreateWysiwygDelegateOptions = {}): EditorDelegate<any>=> {\n const manager = createReactManager(() => {\n return [\n ...EditorExtensions({ handleViewImgSrcUrl }),\n ]\n })\n\n const parser = buildMarkdownParser(manager)\n const serializer = buildMarkdownSerializer(manager)\n\n const stringToDoc: StringToDoc = (content: string) => {\n const doc = parser.parse(content)\n return initDocMarks(doc)\n }\n\n const docToString: DocToString = (doc: Node) => {\n return serializer.serialize(doc)\n }\n\n return {\n view: 'Wysiwyg',\n manager,\n stringToDoc,\n docToString,\n }\n}\n", "import { PositionerPortal, useCommands, useMultiPositioner } from '@remirror/react'\nimport { useEffect } from 'react'\nimport ActiveCellMenu from './ActiveCellMenu'\nimport TitleBar from './TableBar'\nimport type { PositionerIllustrationProps} from './positioner'\nimport { activeCellColumnAndRowPositioner } from './positioner'\n\nconst MultiPositionerIllustration = ({ positioner }: PositionerIllustrationProps) => {\n const positioners = useMultiPositioner(positioner, [])\n const { forceUpdatePositioners } = useCommands()\n\n useEffect(() => {\n forceUpdatePositioners()\n }, [forceUpdatePositioners])\n\n if (positioners.length === 0) return null\n\n const positionersRender = [TitleBar, ActiveCellMenu]\n\n return (\n <>\n {positioners.map((pos, i) => {\n const Component = positionersRender[i]\n return <Component key={pos.key} positioner={pos} />\n })}\n </>\n )\n}\n\nconst TableToolbar = () => {\n return (\n <>\n <PositionerPortal>\n <MultiPositionerIllustration positioner={activeCellColumnAndRowPositioner} />\n </PositionerPortal>\n </>\n )\n}\n\nexport default TableToolbar\n", "import { useContext, useRef, useState } from 'react'\nimport {\n ListItemText,\n ClickAwayListener,\n Grow,\n Paper,\n Popper,\n MenuItem,\n MenuList,\n} from '@mui/material'\nimport { useCommands, type UseMultiPositionerReturn } from '@remirror/react'\nimport styled from 'styled-components'\nimport { OffsetContext } from '@/components/WysiwygEditor'\n\nconst Container = styled.div`\n position: absolute;\n\n .MuiList-padding {\n padding: 0;\n }\n`\n\nconst ActiveCellMenu = (props: ActiveCellMenuProps) => {\n const { positioner } = props\n const commands = useCommands()\n const [open, setOpen] = useState(false)\n const anchorRef = useRef<HTMLDivElement>(null)\n const offset = useContext(OffsetContext)\n const options = [\n {\n label: 'insert column after',\n handler: commands.addTableColumnAfter,\n },\n {\n label: 'insert column before',\n handler: commands.addTableColumnBefore,\n },\n {\n label: 'insert row after',\n handler: commands.addTableRowAfter,\n },\n {\n label: 'insert row before',\n handler: commands.addTableRowBefore,\n },\n {\n label: 'delete column',\n handler: commands.deleteTableColumn,\n },\n {\n label: 'delete row',\n handler: commands.deleteTableRow,\n },\n ]\n\n const handleClose = (event: Event) => {\n if (anchorRef.current && anchorRef.current.contains(event.target as HTMLElement)) {\n return\n }\n\n setOpen(false)\n }\n\n const { ref, key, x, y } = positioner\n\n return (\n <Container\n key={key}\n ref={ref}\n style={{\n left: x + offset.left,\n top: y + offset.top,\n width: 20,\n height: 20,\n }}\n onMouseDown={(e) => {\n e.preventDefault()\n setOpen(true)\n }}\n >\n <div ref={anchorRef}>\n <i className='ri-equalizer-line'></i>\n </div>\n <Popper\n sx={{\n zIndex: 1,\n }}\n open={open}\n anchorEl={anchorRef.current}\n role={undefined}\n transition\n disablePortal\n >\n {({ TransitionProps, placement }) => (\n <Grow\n {...TransitionProps}\n style={{\n transformOrigin: placement === 'bottom' ? 'center top' : 'center bottom',\n }}\n >\n <Paper>\n <ClickAwayListener onClickAway={handleClose}>\n <MenuList dense autoFocusItem>\n {options.map((option) => (\n <MenuItem\n key={option.label}\n onClick={() => {\n option.handler()\n setOpen(false)\n }}\n >\n <ListItemText>{option.label}</ListItemText>\n </MenuItem>\n ))}\n </MenuList>\n </ClickAwayListener>\n </Paper>\n </Grow>\n )}\n </Popper>\n </Container>\n )\n}\n\nexport default ActiveCellMenu\n\ninterface ActiveCellMenuProps {\n positioner: UseMultiPositionerReturn\n}\n", "import { OffsetContext } from '../../components/WysiwygEditor'\nimport type { UseMultiPositionerReturn } from '@remirror/react'\nimport { useCommands } from '@remirror/react'\nimport { useContext } from 'react'\nimport styled from 'styled-components'\n\nconst Container = styled.div`\n position: absolute;\n color: ${(props) => props.theme.dangerColor};\n`\n\nfunction TableBar(props: TableBarProps) {\n const { positioner } = props\n const commands = useCommands()\n const offset = useContext(OffsetContext)\n const { ref, key, x, y } = positioner\n\n return (\n <Container\n key={key}\n ref={ref}\n style={{\n left: x + offset.left,\n top: y + offset.top - 26,\n width: 20,\n height: 20,\n }}\n onMouseDown={(e) => {\n e.preventDefault()\n commands.deleteTable()\n }}\n >\n <i className=\"ri-delete-bin-line\" />\n </Container>\n )\n}\n\ninterface TableBarProps {\n positioner: UseMultiPositionerReturn\n}\n\nexport default TableBar\n", "import type { FindProsemirrorNodeResult, Shape } from 'remirror'\nimport { findParentNodeOfType, isElementDomNode } from 'remirror'\nimport type { ResolvedPos, Selection } from '@remirror/core-types'\nimport type { PositionerPosition } from '@remirror/extension-positioner'\nimport { Positioner, hasStateChanged, isPositionVisible } from '@remirror/extension-positioner'\nimport type { ActiveCellColumnPositionerData } from '@remirror/extension-tables'\n\nexport interface PositionerIllustrationProps {\n positioner: Positioner\n}\n\nfunction findTable(selection: Selection | ResolvedPos): FindProsemirrorNodeResult | undefined {\n return findParentNodeOfType({ selection, types: 'table' })\n}\n\nfunction findCellClosestToPos(\n selection: Selection | ResolvedPos,\n): FindProsemirrorNodeResult | undefined {\n return findParentNodeOfType({ selection, types: ['tableHeaderCell', 'tableCell'] })\n}\n\nconst basePosition = { y: -999_999, x: -999_999, width: 0, height: 0 }\nconst baseRect = {\n ...basePosition,\n left: -999_999,\n top: -999_999,\n bottom: -999_999,\n right: -999_999,\n}\n\nconst defaultAbsolutePosition: PositionerPosition = {\n ...basePosition,\n rect: { ...baseRect, toJSON: () => baseRect as Shape },\n visible: false,\n}\n\nexport const activeCellColumnAndRowPositioner = Positioner.create<ActiveCellColumnPositionerData>({\n hasChanged: hasStateChanged,\n\n getActive(props) {\n const { state, view } = props\n const { selection } = state\n const table = findTable(selection)\n\n if (!table) {\n return Positioner.EMPTY\n }\n\n const cell = findCellClosestToPos(selection)\n if (!cell) {\n return Positioner.EMPTY\n }\n\n const { pos } = cell\n const tableNode = view.nodeDOM(table.pos)\n const node = view.nodeDOM(pos)\n\n if (!isElementDomNode(tableNode) || !isElementDomNode(node)) {\n return Positioner.EMPTY\n }\n\n const tableRect = tableNode.getBoundingClientRect()\n const rect = node.getBoundingClientRect()\n\n return [\n {\n pos: table.pos,\n rect: new DOMRect(tableRect.x, tableRect.y, tableRect.width, tableRect.height),\n },\n {\n pos,\n rect: new DOMRect(rect.x, tableRect.y, rect.width, tableRect.height),\n },\n ]\n },\n\n getID(data) {\n return `${data.pos}`\n },\n\n getPosition(props) {\n const { view, data: cell } = props\n const node = view.nodeDOM(cell.pos)\n\n if (!isElementDomNode(node)) {\n // This should never happen.\n return defaultAbsolutePosition\n }\n\n const rect = node.getBoundingClientRect()\n const editorRect = view.dom.getBoundingClientRect()\n\n const width = rect.width\n\n // The top and left relative to the parent `editorRect`.\n const left = view.dom.scrollLeft + rect.left - editorRect.left\n const top = view.dom.scrollTop + rect.top - editorRect.top\n const height = rect.height\n\n const columnTopRect = new DOMRect(rect.x, rect.y, width, height)\n\n return {\n x: left,\n y: top,\n width,\n height,\n rect: columnTopRect,\n visible: isPositionVisible(columnTopRect, view.dom),\n }\n },\n})\n", "import type { ErrorInfo, PropsWithChildren } from 'react'\nimport React from 'react'\nimport styled from 'styled-components'\n\nconst Title = styled.h1`\n color: ${({ theme }) => theme.dangerColor};\n`\n\ninterface ErrorBoundaryProps {\n hasError?: boolean\n error?: unknown\n}\n\nclass ErrorBoundary extends React.Component<\n PropsWithChildren<ErrorBoundaryProps>,\n { hasError: boolean }\n> {\n constructor(props: PropsWithChildren<ErrorBoundaryProps>) {\n super(props)\n this.state = { hasError: this.props.hasError ?? false }\n }\n\n static getDerivedStateFromError() {\n return { hasError: true }\n }\n\n componentDidCatch(error: Error, errorInfo: ErrorInfo) {\n console.error('[ErrorBoundary]', error, errorInfo)\n }\n\n render() {\n if (this.state.hasError) {\n return (\n <>\n <Title data-testid='editor_error'>Sorry, something went wrong!</Title>\n <p>{String(this.props.error)}</p>\n <a\n href='https://github.com/drl990114/MarkFlowy/issues/new/choose'\n target='_blank'\n rel='noreferrer'\n >\n Please tell us about it and we will fix it in less time\n </a>\n </>\n )\n }\n\n return this.props.children\n }\n}\n\nexport default ErrorBoundary\n", "import { useExtension, useRemirrorContext } from '@remirror/react-core'\nimport { SlashMenuExtension } from '@/extensions/SlashMenu'\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { usePopper } from 'react-popper'\nimport { dispatchWithMeta } from '@/extensions/SlashMenu/utils'\nimport type { SlashMenuState} from '@/extensions/SlashMenu/type'\nimport { SlashMetaTypes } from '@/extensions/SlashMenu/type'\nimport { SlashMenuRoot } from './styles'\n\nexport enum Placement {\n auto = 'auto',\n autoStart = 'auto-start',\n autoEnd = 'auto-end',\n top = 'top',\n topStart = 'top-start',\n topEnd = 'top-end',\n bottom = 'bottom',\n bottomStart = 'bottom-start',\n bottomEnd = 'bottom-end',\n right = 'right',\n rightStart = 'right-start',\n rightEnd = 'right-end',\n left = 'left',\n leftStart = 'left-start',\n leftEnd = 'left-end',\n}\n\nexport const SlashMenu = () => {\n const { view: editorView, getState, commands } = useRemirrorContext({ autoUpdate: true })\n const editorState = getState()\n\n const slashMenuExtension = useExtension(SlashMenuExtension)\n const menuState: SlashMenuState = slashMenuExtension.getPluginState()\n\n const rootRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n if (!rootRef) return\n\n const outsideClickHandler = (event: MouseEvent) => {\n if (\n rootRef.current &&\n (!event.target ||\n !(event.target instanceof Node) ||\n !rootRef.current.contains(event?.target))\n ) {\n dispatchWithMeta(editorView, slashMenuExtension.pluginKey, {\n type: SlashMetaTypes.close,\n })\n }\n }\n\n document.addEventListener('mousedown', outsideClickHandler)\n\n return () => {\n document.removeEventListener('mousedown', outsideClickHandler)\n }\n }, [editorView, rootRef, slashMenuExtension.pluginKey])\n\n const [popperElement, setPopperElement] = useState(null)\n\n const virtualReference = useMemo(() => {\n const domNode = editorView.domAtPos(editorState.selection.to)?.node\n const cursorPosition = editorView.state.selection.to\n const cursorLeft = editorView.coordsAtPos(cursorPosition).left\n\n if (!(domNode instanceof HTMLElement)) return\n\n const { top, height } = domNode.getBoundingClientRect()\n\n return {\n getBoundingClientRect() {\n return {\n top: top,\n right: cursorLeft,\n bottom: top,\n left: cursorLeft,\n width: 0,\n height: height,\n x: cursorLeft,\n y: top,\n toJSON: () =>\n JSON.stringify({\n top: top,\n right: cursorLeft,\n bottom: top,\n left: cursorLeft,\n width: 0,\n height: height,\n x: cursorLeft,\n y: top,\n }),\n }\n },\n }\n }, [editorView, editorState])\n\n const { styles, attributes } = usePopper(virtualReference, popperElement, {\n placement: Placement.bottomStart,\n modifiers: [\n { name: 'flip', enabled: true },\n {\n name: 'preventOverflow',\n },\n ],\n })\n\n const closeMenu = useCallback(() => {\n if (menuState.open) {\n dispatchWithMeta(editorView, slashMenuExtension.pluginKey, {\n type: SlashMetaTypes.close,\n })\n }\n }, [editorView, menuState.open, slashMenuExtension.pluginKey])\n\n // These two useEffects prevent a bug where the user navigates with clicks, which then blurs the editor and key presses stop working\n useEffect(() => {\n editorView.focus()\n }, [menuState?.open])\n\n return (\n <>\n {menuState.open ? (\n <div\n // @ts-ignore\n ref={setPopperElement}\n style={{\n ...styles.popper,\n backgroundColor: '#1e1e1e',\n zIndex: 1000,\n }}\n {...attributes.popper}\n >\n <SlashMenuRoot rootRef={rootRef} commands={commands} closeMenu={closeMenu} />\n </div>\n ) : null}\n </>\n )\n}\n", "import { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport type { AnyExtension, CommandsFromExtensions } from 'remirror'\nimport styled, { css } from 'styled-components'\nimport TablePanel from './TablePanel'\nimport { darken } from '@markflowy/theme'\n\ntype SlashMenuRootProps = {\n rootRef: React.RefObject<HTMLDivElement>\n commands: CommandsFromExtensions<AnyExtension>\n closeMenu: () => void\n}\n\nexport const SlashMenuRoot: React.FC<SlashMenuRootProps> = memo(\n ({ rootRef, commands, closeMenu }) => {\n const componentRefMap = useRef<Record<string, any>>({})\n\n const menuItems = useMemo(() => {\n const headingItems = Array.from({ length: 6 }).map((_, i) => {\n return {\n title: `heading ${i + 1}`,\n id: `heading${i + 1}`,\n handler: () => {\n commands.toggleHeading({ level: i + 1 })\n },\n }\n })\n\n return [\n {\n title: 'Text',\n id: 'text',\n children: headingItems,\n },\n {\n title: 'Table',\n id: 'table',\n handler: () => {\n componentRefMap.current.table?.createTable()\n },\n Renderer: {\n id: 'table',\n Component: (\n <TablePanel\n ref={(el) => (componentRefMap.current.table = el)}\n commands={commands}\n closeMenu={closeMenu}\n />\n ),\n },\n },\n ]\n }, [closeMenu, commands])\n\n const [activeGroupId, setActiveGroupId] = useState(menuItems[0].id)\n const [activeItemId, setActiveItemId] = useState<string | undefined>()\n const currentIndex = menuItems.findIndex((item) => item.id === activeGroupId)\n const currentMenuItem = menuItems[currentIndex]\n\n const handleDown = useCallback(() => {\n if (activeItemId) {\n if (currentMenuItem?.children) {\n const currentChildIndex = currentMenuItem.children.findIndex(\n (item) => item.id === activeItemId,\n )\n const nextIndex = currentChildIndex + 1\n if (nextIndex < currentMenuItem.children.length) {\n setActiveItemId(currentMenuItem.children[nextIndex].id)\n }\n } else if (currentMenuItem.Renderer) {\n setActiveItemId(currentMenuItem.Renderer.id)\n }\n } else {\n const nextIndex = currentIndex + 1\n if (nextIndex < menuItems.length) {\n setActiveGroupId(menuItems[nextIndex].id)\n }\n }\n }, [activeItemId, currentIndex, currentMenuItem.Renderer, currentMenuItem.children, menuItems])\n\n const handleUp = useCallback(() => {\n if (activeItemId) {\n if (currentMenuItem?.children) {\n const currentChildIndex = currentMenuItem.children.findIndex(\n (item) => item.id === activeItemId,\n )\n const nextIndex = currentChildIndex - 1\n if (nextIndex >= 0) {\n setActiveItemId(currentMenuItem.children[nextIndex].id)\n }\n } else if (currentMenuItem.Renderer) {\n setActiveItemId(currentMenuItem.Renderer.id)\n }\n } else {\n const nextIndex = currentIndex - 1\n if (nextIndex >= 0) {\n setActiveGroupId(menuItems[nextIndex].id)\n }\n }\n }, [activeItemId, currentIndex, currentMenuItem.Renderer, currentMenuItem.children, menuItems])\n\n const handleRight = useCallback(() => {\n if (currentMenuItem?.children) {\n setActiveItemId(currentMenuItem.children[0].id)\n } else if (currentMenuItem?.Renderer) {\n setActiveItemId(currentMenuItem.Renderer.id)\n }\n }, [currentMenuItem])\n\n const handleLeft = useCallback(() => {\n setActiveItemId(undefined)\n }, [])\n\n useEffect(() => {\n const keydownHandler = (event: KeyboardEvent) => {\n if (activeItemId) {\n const componentRef = componentRefMap.current[activeItemId]\n if (componentRef?.handleKeyDown) {\n const next = componentRef.handleKeyDown(event)\n\n if (next === false) {\n closeMenu()\n return\n }\n }\n }\n\n if (event.key === 'ArrowDown') {\n handleDown()\n } else if (event.key === 'ArrowUp') {\n handleUp()\n } else if (event.key === 'ArrowRight') {\n handleRight()\n } else if (event.key === 'ArrowLeft') {\n handleLeft()\n } else if (event.key === 'Enter') {\n if (activeItemId) {\n const item = currentMenuItem?.children?.find((child) => child.id === activeItemId)\n if (item?.handler) {\n item.handler()\n }\n }\n if (currentMenuItem?.handler) {\n currentMenuItem.handler()\n }\n closeMenu()\n }\n }\n\n document.addEventListener('keydown', keydownHandler)\n\n return () => {\n document.removeEventListener('keydown', keydownHandler)\n }\n }, [\n activeItemId,\n handleDown,\n handleLeft,\n handleRight,\n handleUp,\n closeMenu,\n menuItems,\n currentMenuItem,\n ])\n\n return (\n <div ref={rootRef} style={{ display: 'flex' }}>\n <MenuPanel active location='left'>\n {menuItems.map((item) => {\n const selected = item.id === activeGroupId\n return (\n <MenuItem onClick={() => setActiveGroupId(item.id)} key={item.id} selected={selected}>\n {item.title}\n </MenuItem>\n )\n })}\n </MenuPanel>\n <MenuPanel active={!!activeItemId} location='right'>\n {currentMenuItem?.Renderer\n ? currentMenuItem.Renderer.Component\n : currentMenuItem?.children?.map((item) => {\n const selected = item.id === activeItemId\n\n return (\n <MenuItem\n key={item.id}\n selected={selected}\n onClick={() => {\n setActiveItemId(item.id)\n item.handler?.()\n closeMenu()\n }}\n >\n {item.title}\n </MenuItem>\n )\n })}\n </MenuPanel>\n </div>\n )\n },\n)\n\ntype MenuPanelProps = {\n location: 'left' | 'right'\n active: boolean\n}\n\nconst MenuPanel = styled.div.attrs<MenuPanelProps>((p) => p)`\n display: flex;\n min-width: 130px;\n flex-direction: column;\n overscroll-behavior: contain;\n border-radius: ${(props) =>\n props.location === 'left'\n ? `${props.theme.smallBorderRadius} 0 0\n ${props.theme.smallBorderRadius}`\n : `0 ${props.theme.smallBorderRadius} ${props.theme.smallBorderRadius} 0`};\n border-width: 1px;\n border-style: solid;\n border-right: none;\n border-color: ${(props) => props.theme.borderColor};\n background-color: ${(props) =>\n props.active ? darken(props.theme.contextMenuBgColor, 0.2) : props.theme.contextMenuBgColor};\n padding: ${(props) => props.theme.spaceXs};\n color: ${(props) => props.theme.primaryFontColor};\n font-size: ${(props) => props.theme.fontXs};\n outline: none;\n overflow: visible;\n`\n\nconst MenuItem = styled.li.attrs<{\n selected: boolean\n}>((props) => ({\n ...props,\n}))`\n display: flex;\n cursor: default;\n align-items: center;\n border-radius: ${(props) => props.theme.smallBorderRadius};\n padding: ${(props) => props.theme.spaceXs};\n outline: none !important;\n\n &:hover {\n background-color: ${(props) => props.theme.blue};\n color: hsl(204 20% 100%);\n }\n\n ${(p) => {\n if (p.selected) {\n return css`\n background-color: ${(props) => props.theme.blue};\n color: hsl(204 20% 100%);\n `\n }\n }}\n`\n", "/* eslint-disable @typescript-eslint/no-shadow */\nimport { forwardRef, useState, useImperativeHandle, memo } from 'react'\nimport type { AnyExtension, CommandsFromExtensions } from 'remirror'\nimport styled from 'styled-components'\n\ntype TablePanelProps = {\n commands: CommandsFromExtensions<AnyExtension>\n closeMenu: () => void\n}\n\ntype TablePanelRef = {\n createTable: () => void\n handleKeyDown: (e: KeyboardEvent) => boolean | void\n}\n\nconst TablePanelCell = styled.div.attrs<{ inScope: boolean }>((p) => p)`\n border: 1px solid ${(props) => props.theme.borderColor};\n margin-right: 1px;\n margin-bottom: 1px;\n width: 10px;\n height: 10px;\n background-color: ${(props) =>\n props.inScope ? props.theme.blue : props.theme.contextMenuBgColor};\n`\nconst TablePanel = memo(\n forwardRef<TablePanelRef, TablePanelProps>((props, ref) => {\n const { commands, closeMenu } = props\n const [rowsCount, setRowsCount] = useState(3)\n const [columnsCount, setColumnsCount] = useState(3)\n\n useImperativeHandle(ref, () => ({\n createTable: () => {\n commands.createTable({ rowsCount, columnsCount, withHeaderRow: false})\n },\n handleKeyDown: (e) => {\n const handleRight = () => {\n setColumnsCount((prev) => prev + 1)\n }\n const handleLeft = () => {\n if (e.metaKey || e.ctrlKey) {\n return true\n }\n setColumnsCount((prev) => (prev - 1 < 1 ? 1 : prev - 1))\n return false\n }\n const handleUp = () => {\n setRowsCount((prev) => (prev - 1 < 1 ? 1 : prev - 1))\n }\n const handleDown = () => {\n setRowsCount((prev) => prev + 1)\n }\n const handleEnter = () => {\n commands.createTable({ rowsCount, columnsCount })\n return false\n }\n\n if (e.key === 'ArrowRight') {\n return handleRight()\n } else if (e.key === 'ArrowLeft') {\n return handleLeft()\n } else if (e.key === 'ArrowUp') {\n return handleUp()\n } else if (e.key === 'ArrowDown') {\n return handleDown()\n } else if (e.key === 'Enter') {\n return handleEnter()\n }\n },\n }))\n\n const displayRows = 10\n const displayCols = 6\n\n return (\n <div>\n <span>\n Rows: {rowsCount} Cols: {columnsCount}\n </span>\n {Array.from({ length: displayRows }).map((_, i) => {\n return (\n <div key={i} style={{ display: 'flex' }}>\n {Array.from({ length: displayCols }).map((_, j) => {\n const inScope = i < rowsCount && j < columnsCount\n\n return (\n <TablePanelCell\n key={j}\n inScope={inScope}\n onClick={() => {\n commands.createTable({\n rowsCount: i,\n columnsCount: j,\n withHeaderRow: false\n })\n closeMenu()\n }}\n />\n )\n })}\n </div>\n )\n })}\n </div>\n )\n }),\n)\n\nexport default TablePanel\n", "import { wysiwygTransformer } from '@/components/WysiwygEditor'\nimport type { CreateExtensionPlugin } from '@remirror/core'\nimport { PlainExtension } from '@remirror/core'\nimport type { Slice, Node } from '@remirror/pm/model'\nimport { DOMSerializer, DOMParser } from '@remirror/pm/model'\n\ntype UnknownRecord = Record<string, unknown>\nfunction isPureText(content: UnknownRecord | UnknownRecord[] | undefined | null): boolean {\n if (!content) return false\n if (Array.isArray(content)) {\n if (content.length > 1) return false\n return isPureText(content[0])\n }\n\n const child = content.content\n if (child) return isPureText(child as UnknownRecord[])\n\n return content.type === 'text'\n}\n\nfunction isTextOnlySlice(slice: Slice): Node | false {\n if (slice.content.childCount === 1) {\n const node = slice.content.firstChild\n if (node?.type.name === 'text' && node.marks.length === 0) return node\n\n if (node?.type.name === 'paragraph' && node.childCount === 1) {\n const _node = node.firstChild\n if (_node?.type.name === 'text' && _node.marks.length === 0) return _node\n }\n }\n\n return false\n}\n\nexport class ClipboardExtension extends PlainExtension {\n get name() {\n return 'clipboard' as const\n }\n\n createPlugin(): CreateExtensionPlugin {\n return {\n props: {\n handlePaste: (view, event) => {\n const parser = wysiwygTransformer.stringToDoc\n const schema = view.state.schema\n const editable = view.props.editable?.(view.state)\n const { clipboardData } = event\n if (!editable || !clipboardData) return false\n\n const currentNode = view.state.selection.$from.node()\n if (currentNode.type.spec.code) return false\n\n const text = clipboardData.getData('text/plain')\n\n const html = clipboardData.getData('text/html')\n if (html.length === 0 && text.length === 0) return false\n\n const domParser = DOMParser.fromSchema(schema)\n let dom\n if (html.length === 0) {\n const slice = parser?.(text)\n if (!slice || typeof slice === 'string') return false\n\n dom = DOMSerializer.fromSchema(schema).serializeFragment(slice.content)\n } else {\n const template = document.createElement('template')\n template.innerHTML = html\n dom = template.content.cloneNode(true)\n template.remove()\n }\n\n const slice = domParser.parseSlice(dom)\n const node = isTextOnlySlice(slice)\n if (node) {\n view.dispatch(view.state.tr.replaceSelectionWith(node, true))\n return true\n }\n\n view.dispatch(view.state.tr.replaceSelection(slice))\n return true\n },\n clipboardTextSerializer: (slice, view) => {\n const schema = view.state.schema\n const serializer = wysiwygTransformer.docToString\n const isText = isPureText(slice.content.toJSON())\n if (isText)\n return (slice.content as unknown as Node).textBetween(0, slice.content.size, '\\n\\n')\n\n const doc = schema.topNodeType.createAndFill(undefined, slice.content)\n if (!doc) return ''\n const value = serializer?.(doc) || ''\n return value\n },\n },\n }\n }\n}\n", "import type { Node } from \"@remirror/pm/model\"\nimport { isOrderedListNode } from \"../extensions\"\n\nexport type NodeSerializerOptions = {\n state: MarkdownSerializerState\n node: Node\n parent: Node\n index: number\n counter: number\n}\nexport type NodeSerializerSpec = (options: NodeSerializerOptions) => void\nexport type NodeSerializerSpecs = Record<string, NodeSerializerSpec>\n\nexport class MarkdownSerializerState {\n private nodes: NodeSerializerSpecs\n private delimiter: string\n public out: string\n private closed: Node | null\n private inTightList: boolean\n\n public constructor(nodes: NodeSerializerSpecs) {\n this.nodes = nodes\n this.delimiter = \"\"\n this.out = \"\"\n this.closed = null\n this.inTightList = false\n }\n\n public flushClose(size = 2) {\n if (this.closed) {\n this.ensureNewLine()\n if (size > 1) {\n let delimMin = this.delimiter\n const trim = /\\s+$/.exec(delimMin)\n if (trim) delimMin = delimMin.slice(0, delimMin.length - trim[0].length)\n for (let i = 1; i < size; i++) this.out += delimMin + \"\\n\"\n }\n this.closed = null\n }\n }\n\n // Render a block, prefixing each line with `delimiter`, and the first\n // line in `firstDelim`. `node` should be the node that is closed at\n // the end of the block, and `f` is a function that renders the\n // content of the block.\n public wrapBlock(newDelimiter: string, firstDelim: string | null, node: Node, f: () => void) {\n const oldDelimiter = this.delimiter\n this.write(firstDelim || newDelimiter)\n this.delimiter = this.delimiter + newDelimiter\n f()\n this.delimiter = oldDelimiter\n this.closeBlock(node)\n }\n\n public atBlank() {\n return /(^|\\n)$/.test(this.out)\n }\n\n // Ensure the current content ends with a newline.\n public ensureNewLine() {\n if (!this.atBlank()) this.out += \"\\n\"\n }\n\n // Prepare the state for writing output (closing closed paragraphs,\n // adding delimiters, and so on), and then optionally add content\n // (unescaped) to the output.\n public write(content?: string) {\n this.flushClose()\n if (this.delimiter && this.atBlank()) this.out += this.delimiter\n if (content) this.out += content\n }\n\n // Close the block for the given node.\n public closeBlock(node: Node) {\n this.closed = node\n }\n\n // Add the given text to the document. When escape is true,\n // it will be escaped.\n public text(text: string, escape = true) {\n const lines = text.split(\"\\n\")\n for (let i = 0; i < lines.length; i++) {\n const startOfLine = this.atBlank() || this.closed\n this.write()\n this.out += escape ? this.esc(lines[i], Boolean(startOfLine)) : lines[i]\n if (i != lines.length - 1) this.out += \"\\n\"\n }\n }\n\n // Render the given node as a block.\n public render(node: Node, parent: Node, index: number, counter = 0) {\n const spec = this.nodes[node.type.name]\n if (!spec) return\n if (!spec) throw new Error(`Can't find node spec for type '${node.type.name}'`)\n spec({ state: this, node, parent, index, counter })\n }\n\n // Render the contents of `parent` as block nodes.\n public renderContent(parent: Node) {\n let counter = 0\n parent.forEach((node, offset, index) => {\n if (isOrderedListNode(node)) {\n counter += 1\n } else {\n counter = 0\n }\n\n this.render(node, parent, index, counter)\n })\n }\n\n // Render the contents of `parent` as inline content.\n public renderInline(parent: Node) {\n parent.forEach((node, offset, index) => {\n if (node.isText) this.text(node.text || \"\", false)\n else this.render(node, parent, index)\n })\n }\n\n // Render a node's content as a list. `delim` should be the extra\n // indentation added to all lines except the first in an item,\n // `firstDelim` is a function going from an item index to a\n // delimiter for the first line of the item.\n public renderList(node: Node, delim: string, firstDelim: (n: number) => string): void {\n if (this.closed && this.closed.type === node.type) {\n this.flushClose(3)\n } else if (this.inTightList) {\n this.flushClose(1)\n } else {\n this.flushClose(2)\n }\n\n const prevTight = this.inTightList\n this.inTightList = true\n node.forEach((child, _, i) => {\n if (i) this.flushClose(1)\n this.wrapBlock(delim, firstDelim(i), node, () => this.render(child, node, i))\n })\n this.inTightList = prevTight\n }\n\n // Escape the given string so that it can safely appear in Markdown\n // content. If `startOfLine` is true, also escape characters that\n // has special meaning only at the start of the line.\n public esc(str: string, startOfLine?: boolean): string {\n str = str.replace(/[`*\\\\~\\[\\]]/g, \"\\\\$&\")\n if (startOfLine) str = str.replace(/^[:#\\-*+]/, \"\\\\$&\").replace(/^(\\d+)\\./, \"$1\\\\.\")\n return str\n }\n\n public quote(str: string): string {\n const wrap = !str.includes(`\"`) ? `\"\"` : !str.includes(`'`) ? `''` : `()`\n return wrap[0] + str + wrap[1]\n }\n\n // Repeat the given string `n` times.\n public repeat(str: string, n: number): string {\n let out = \"\"\n for (let i = 0; i < n; i++) out += str\n return out\n }\n\n // Get leading and trailing whitespace from a string. Values of\n // leading or trailing property of the return object will be undefined\n // if there is no match.\n public getEnclosingWhitespace(text: string) {\n return {\n leading: (/^(\\s+)/.exec(text) || [])[0],\n trailing: (/(\\s+)$/.exec(text) || [])[0],\n }\n }\n}\n\nexport class MarkdownSerializer {\n private nodes: NodeSerializerSpecs\n\n public constructor(nodes: NodeSerializerSpecs) {\n this.nodes = nodes\n }\n\n public serialize(content: Node) {\n const state = new MarkdownSerializerState(this.nodes)\n state.renderContent(content)\n return state.out\n }\n}\n", "import type Token from 'markdown-it/lib/token'\n\nimport type { NodeSerializerOptions } from '../../transform'\nimport { ParserRuleType } from '../../transform'\nimport type { EditorState } from 'remirror'\nimport { Decoration, DecorationSet } from '@remirror/pm/view'\nimport createCodeMirrorMenuDecorations from './codemirror-lang-menu'\nimport type {\n ApplySchemaAttributes,\n CommandFunction,\n EditorView,\n GetAttributes,\n InputRule,\n KeyBindingProps,\n NodeExtensionSpec,\n NodeSpecOverride,\n NodeViewMethod,\n PrioritizedKeyBindings,\n ProsemirrorNode,\n} from '@remirror/core'\nimport {\n command,\n extension,\n findParentNodeOfType,\n isElementDomNode,\n isEqual,\n isTextSelection,\n keyBinding,\n NodeExtension,\n nodeInputRule,\n setBlockType,\n} from '@remirror/core'\nimport { TextSelection } from '@remirror/pm/state'\nimport { CodeMirror6NodeView } from './codemirror-node-view'\nimport type { CodeMirrorExtensionAttributes, CodeMirrorExtensionOptions } from './codemirror-types'\nimport { arrowHandler } from './codemirror-utils'\nimport type { CreateThemeOptions} from '@/codemirror'\nimport { changeTheme } from '@/codemirror'\nimport { languages } from '@codemirror/language-data'\n\nexport const fakeIndentedLanguage = 'indent-code'\n\n@extension<CodeMirrorExtensionOptions>({\n defaultOptions: {\n hideDecoration: false,\n extensions: null,\n toggleName: 'paragraph',\n },\n})\nexport class LineCodeMirrorExtension extends NodeExtension<CodeMirrorExtensionOptions> {\n private nodeview: CodeMirror6NodeView | undefined\n get name() {\n return 'codeMirror' as const\n }\n\n createNodeSpec(extra: ApplySchemaAttributes, override: NodeSpecOverride): NodeExtensionSpec {\n return {\n group: 'block',\n content: 'text*',\n marks: '',\n defining: true,\n ...override,\n code: true,\n attrs: {\n ...extra.defaults(),\n language: { default: '' },\n },\n parseDOM: [\n {\n tag: 'pre',\n getAttrs: (node) => (isElementDomNode(node) ? extra.parse(node) : false),\n },\n ...(override.parseDOM ?? []),\n ],\n toDOM() {\n return ['pre', ['code', 0]]\n },\n isolating: true,\n }\n }\n\n createNodeViews(): NodeViewMethod {\n return (node: ProsemirrorNode, view: EditorView, getPos: () => number | undefined) => {\n this.nodeview = new CodeMirror6NodeView({\n node,\n view,\n getPos: getPos as () => number,\n extensions: this.options.extensions,\n toggleName: this.options.toggleName,\n })\n\n return this.nodeview\n }\n }\n\n createKeymap(): PrioritizedKeyBindings {\n return {\n ArrowLeft: arrowHandler('left'),\n ArrowRight: arrowHandler('right'),\n ArrowUp: arrowHandler('up'),\n ArrowDown: arrowHandler('down'),\n }\n }\n\n /**\n * Create an input rule that listens converts the code fence into a code block\n * when typing triple back tick followed by a space.\n */\n createInputRules(): InputRule[] {\n const regexp = /^```(\\S+) $/\n\n const getAttributes: GetAttributes = (match) => {\n const language = match[1] ?? ''\n return { language }\n }\n\n return [\n nodeInputRule({\n regexp,\n type: this.type,\n beforeDispatch: ({ tr, start }) => {\n const $pos = tr.doc.resolve(start)\n tr.setSelection(TextSelection.near($pos))\n },\n getAttributes: getAttributes,\n }),\n ]\n }\n\n @keyBinding({ shortcut: 'Enter' })\n enterKey({ dispatch, tr }: KeyBindingProps): boolean {\n if (!(isTextSelection(tr.selection) && tr.selection.empty)) {\n return false\n }\n\n const { nodeBefore, parent } = tr.selection.$anchor\n\n if (!nodeBefore?.isText || !parent.type.isTextblock) {\n return false\n }\n\n const regex = /^```(\\S*)?$/\n const { text, nodeSize } = nodeBefore\n const { textContent } = parent\n\n if (!text) {\n return false\n }\n\n const matchesNodeBefore = text.match(regex)\n const matchesParent = textContent.match(regex)\n\n if (!matchesNodeBefore || !matchesParent) {\n return false\n }\n\n const language = matchesNodeBefore[1] ?? ''\n\n const pos = tr.selection.$from.before()\n const end = pos + nodeSize + 1 // +1 to account for the extra pos a node takes up\n tr.replaceWith(pos, end, this.type.create({ language }))\n\n // Set the selection to within the codeBlock\n tr.setSelection(TextSelection.near(tr.doc.resolve(pos + 1)))\n\n if (dispatch) {\n dispatch(tr)\n }\n\n return true\n }\n\n /**\n * Creates a CodeMirror block at the current position.\n *\n * ```ts\n * commands.createCodeMirror({ language: 'js' });\n * ```\n */\n @command()\n createCodeMirror(attributes: CodeMirrorExtensionAttributes): CommandFunction {\n return setBlockType(this.type, attributes)\n }\n\n /**\n * Update the code block at the current position. Primarily this is used\n * to change the language.\n *\n * ```ts\n * if (commands.updateCodeMirror.isEnabled()) {\n * commands.updateCodeMirror({ language: 'markdown' });\n * }\n * ```\n */\n @command()\n updateCodeMirror(attributes: CodeMirrorExtensionAttributes): CommandFunction {\n const type = this.type\n return ({ state, dispatch, tr }) => {\n const parent = findParentNodeOfType({ types: type, selection: state.selection })\n\n if (!parent || isEqual(attributes, parent.node.attrs)) {\n // Do nothing since the attrs are the same\n return false\n }\n\n tr.setNodeMarkup(parent.pos, type, { ...parent.node.attrs, ...attributes })\n\n if (dispatch) {\n dispatch(tr)\n }\n\n return true\n }\n }\n\n @command()\n changeCodeMirrorTheme(theme: CreateThemeOptions): CommandFunction {\n return () => {\n changeTheme(theme)\n return true\n }\n }\n\n public fromMarkdown() {\n return [\n {\n type: ParserRuleType.block,\n token: 'fence',\n node: this.name,\n hasOpenClose: false,\n getAttrs: (tok: Token) => {\n const language = tok.info\n return {\n language,\n }\n },\n },\n {\n type: ParserRuleType.block,\n token: 'code_block',\n node: this.name,\n hasOpenClose: false,\n getAttrs: () => {\n return {\n language: fakeIndentedLanguage,\n }\n },\n },\n ] as const\n }\n\n public toMarkdown({ state, node }: NodeSerializerOptions) {\n if (node.attrs.language !== fakeIndentedLanguage) {\n state.write('```' + ((node.attrs.language as string) || '') + '\\n')\n state.text(node.textContent, false)\n state.text('\\n')\n state.write('```')\n state.closeBlock(node)\n } else {\n state.wrapBlock(' ', ' ', node, () => state.renderContent(node))\n state.closeBlock(node)\n }\n state.ensureNewLine()\n }\n\n createDecorations(state: EditorState): DecorationSet {\n if (this.options.hideDecoration) {\n return DecorationSet.empty\n }\n\n const found = findParentNodeOfType({ types: this.type, selection: state.selection })\n if (!found) {\n return DecorationSet.empty\n }\n\n if (!languages || languages.length <= 1) {\n return DecorationSet.empty\n }\n\n const { create, destroy } = createCodeMirrorMenuDecorations(found)\n\n const deco = Decoration.widget(found.pos, create, {\n ignoreSelection: true,\n stopEvent: () => true,\n key: 'language-menu',\n destroy,\n })\n\n return DecorationSet.create(state.doc, [deco])\n }\n}\n", "import { languages } from '@codemirror/language-data'\nimport type { EditorView, FindProsemirrorNodeResult } from 'remirror'\nimport Drop from 'tether-drop'\nimport { fakeIndentedLanguage } from './codemirror-extension'\nimport Fuse from 'fuse.js'\n\ninterface CodeMirrorMenuDecorations {\n create: (view: EditorView, getPos: () => number | undefined) => HTMLElement\n destroy: () => void\n}\n\nconst createLanguagesList = (currentLanguage: string): HTMLUListElement => {\n const languagesList = document.createElement('ul')\n languagesList.classList.add('code-block__languages')\n languages.forEach((language) => {\n const languageItem = document.createElement('li')\n languageItem.classList.add('code-block__language')\n languageItem.classList.toggle('code-block__language--active', language.name === currentLanguage)\n languageItem.innerText = language.name\n languagesList.append(languageItem)\n })\n\n return languagesList\n}\n\nconst updateLanguagesList = ({\n keyword,\n languagesList,\n currentLanguage,\n}: {\n keyword?: string\n languagesList: HTMLUListElement\n currentLanguage: string\n}) => {\n let filteredLanguages = languages\n\n if (keyword) {\n filteredLanguages = new Fuse(languages, {\n keys: ['name'],\n })\n .search(keyword)\n .map((result) => result.item)\n }\n\n languagesList.innerHTML = ''\n filteredLanguages.forEach((language) => {\n const languageItem = document.createElement('li')\n languageItem.classList.add('code-block__language')\n languageItem.classList.toggle('code-block__language--active', language.name === currentLanguage)\n languageItem.innerText = language.name\n languagesList.append(languageItem)\n })\n}\n\nconst createCodeMirrorMenuDecorations = (\n found: FindProsemirrorNodeResult,\n): CodeMirrorMenuDecorations => {\n let dropInstance: Drop | undefined\n\n const handleBlurClick = (e: MouseEvent) => {\n const targetNode = e.target as HTMLElement\n if (!targetNode.classList.contains('code-block__languages__input')) {\n destroy()\n }\n }\n\n const create = (view: EditorView, getPos: () => number | undefined): HTMLElement => {\n let currentLanguage = found.node.attrs.language || ''\n if (currentLanguage === fakeIndentedLanguage) {\n currentLanguage = ''\n }\n\n const languagesList = createLanguagesList(currentLanguage)\n\n const setLanguage = (language: string) => {\n const pos = getPos()\n if (pos) {\n view.dispatch(view.state.tr.setNodeMarkup(pos, undefined, { language }))\n }\n }\n\n const reference = document.createElement('div')\n const langInput = document.createElement('input')\n reference.classList.add('code-block__reference', 'code-block__reference--active')\n langInput.classList.add('code-block__languages__input')\n\n reference.appendChild(langInput)\n langInput.value = currentLanguage\n\n langInput.addEventListener('focus', () => {\n dropInstance = new Drop({\n target: langInput,\n content: languagesList,\n position: 'bottom left',\n })\n })\n\n document.addEventListener('click', handleBlurClick, true)\n\n langInput.addEventListener('input', (e) => {\n if (e.target) {\n const value = (e.target as HTMLInputElement).value\n updateLanguagesList({ keyword: value, currentLanguage, languagesList })\n setLanguage(value)\n }\n })\n\n languagesList?.addEventListener('click', (e) => {\n currentLanguage = (e.target as HTMLElement).innerText\n setLanguage(currentLanguage)\n langInput.value = currentLanguage\n })\n\n updateLanguagesList({ keyword: currentLanguage, currentLanguage, languagesList })\n return reference\n }\n\n const destroy = () => {\n dropInstance?.destroy()\n dropInstance = undefined\n document.removeEventListener('click', handleBlurClick)\n }\n\n return {\n create,\n destroy,\n }\n}\n\nexport default createCodeMirrorMenuDecorations\n", "import type { LanguageSupport } from '@codemirror/language'\nimport type { Extension as CodeMirrorExtension } from '@codemirror/state'\nimport type { EditorView as CodeMirrorEditorView } from '@codemirror/view'\nimport type { EditorView, NodeView, ProsemirrorNode } from '@remirror/pm'\nimport MfCodemirrorView from '../../codemirror/codemirror'\n\nexport type LoadLanguage = (lang: string) => Promise<LanguageSupport> | LanguageSupport | void\n\nexport class CodeMirror6NodeView implements NodeView {\n public dom: HTMLElement\n private node: ProsemirrorNode\n private readonly view: EditorView\n private readonly getPos: () => number\n private readonly cm: CodeMirrorEditorView\n private readonly mfCodemirrorView: MfCodemirrorView\n private languageName: string\n\n constructor({\n node,\n view,\n getPos,\n extensions,\n }: {\n node: ProsemirrorNode\n view: EditorView\n getPos: () => number\n extensions: CodeMirrorExtension[] | null\n toggleName: string\n }) {\n this.node = node\n this.view = view\n this.getPos = getPos\n this.languageName = ''\n\n this.mfCodemirrorView = new MfCodemirrorView({\n view: this.view,\n getPos: this.getPos,\n node: this.node,\n extensions,\n languageName: this.languageName,\n })\n // Create a CodeMirror instance\n this.cm = this.mfCodemirrorView.cm\n\n // The editor's outer node is our DOM representation\n this.dom = this.cm.dom\n }\n\n update(node: ProsemirrorNode): boolean {\n this.node = node\n return this.mfCodemirrorView.update(node)\n }\n\n /**\n * Synchronize the selections from ProseMirror to CodeMirrror\n */\n setSelection(anchor: number, head: number): void {\n this.mfCodemirrorView.setSelection(anchor, head)\n }\n\n selectNode(): void {\n this.focus()\n }\n\n focus(): void {\n this.cm.focus()\n this.mfCodemirrorView.forwardSelection()\n }\n\n stopEvent(): boolean {\n return true\n }\n\n destroy(): void {\n this.mfCodemirrorView.destroy()\n }\n}\n", "import { useHelpers, useKeymap, useRemirrorContext, useCommands } from '@remirror/react'\n\n\nexport {\n useHelpers,\n useKeymap,\n useRemirrorContext,\n useCommands\n}\n", "import { ThemeProvider } from 'styled-components'\n\nexport * from './Editor'\n\ntype Props = {\n children?: React.ReactNode\n theme: Record<string, any>\n}\n\nexport const EditorProvider = ({ theme, children }: Props) => {\n return (\n <ThemeProvider theme={theme}>\n {children}\n </ThemeProvider>\n )\n}\n", "/* eslint-disable react-hooks/rules-of-hooks */\nimport WysiwygEditor from './WysiwygEditor'\nimport SourceEditor from './SourceEditor'\nimport { forwardRef, memo, useImperativeHandle, useMemo, useState } from 'react'\nimport type { EditorContext, EditorDelegate, EditorViewType } from '..'\nimport { useContextMounted } from './useContextMounted'\nimport type { Extension, RemirrorEventListenerProps } from 'remirror'\n\nexport type EditorRef = {\n toggleType: (targetType: EditorViewType) => void\n getType: () => EditorViewType\n}\n\nexport const Editor = memo(\n forwardRef<EditorRef, EditorProps>((props, ref) => {\n const { hooks = [], onContextMounted, ...otherProps } = props\n const [type, setType] = useState<EditorViewType>('wysiwyg')\n\n useImperativeHandle(ref, () => ({\n getType: () => type,\n toggleType: (targetType: EditorViewType) => {\n setType(targetType)\n },\n }))\n\n const editorHooks = useMemo(() => {\n return [() => useContextMounted(onContextMounted), ...hooks]\n }, [hooks, onContextMounted])\n\n return type === 'sourceCode' ? (\n <SourceEditor {...otherProps} hooks={editorHooks} />\n ) : (\n <WysiwygEditor {...otherProps} hooks={editorHooks} />\n )\n }),\n)\n\nexport type EditorChangeHandler = (\n params: RemirrorEventListenerProps<Extension>,\n content: string,\n) => void\n\nexport interface EditorProps {\n delegate?: EditorDelegate\n content: string\n isTesting?: boolean\n editable?: boolean\n offset?: {\n top: number\n left: number\n }\n onChange?: EditorChangeHandler\n hooks?: (() => void)[]\n markdownToolBar?: React.ReactNode[]\n wysiwygToolBar?: React.ReactNode[]\n onContextMounted?: (context: EditorContext) => void\n}\n", "import { useRemirrorContext } from '@remirror/react-core'\nimport type { EditorContext } from '../editor'\nimport { useEffect } from 'react'\n\nexport const useContextMounted = (onContextMounted?: (ctx: EditorContext) => void ) => {\n const remirrorContext = useRemirrorContext()\n\n\n useEffect(() => {\n if (onContextMounted) {\n onContextMounted(remirrorContext)\n }\n }, [onContextMounted, remirrorContext])\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Empty", "__import___implementation", "__import___shams", "__import_functionBind", "undefined", "__import_hasSymbols", "__import_hasProto", "doEval", "__import_functionBind", "__import_has", "stringToPath", "getBaseIntrinsic", "__import_functionBind", "__import_getIntrinsic", "applyBind", "require_implementation", "__import___isArguments", "object", "isFunction", "isString", "__import___isArguments", "__import___implementation", "object", "__import_getIntrinsic", "hasPropertyDescriptors", "__import_objectKeys", "isFunction", "__import_hasPropertyDescriptors", "object", "__import_getIntrinsic", "__import___", "__import_getIntrinsic", "__import_callBind_callBound", "require_IsArray", "__import____helpers_IsArray", "__import_getIntrinsic", "__import_callBind_callBound", "__import___IsArray", "__import___util_inspect", "isSymbol", "isArray", "isRegExp", "isError", "isNumber", "isString", "isDate", "n", "require_Type", "__import____5_Type", "__import_getIntrinsic", "__import_objectInspect", "__import___IsPropertyKey", "__import___Type", "__import_getIntrinsic", "__import_objectInspect", "__import___IsPropertyKey", "__import_isCallable", "__import_getIntrinsic", "__import___GetV", "__import___IsCallable", "__import___IsPropertyKey", "__import_objectInspect", "require_shams", "__import_hasSymbols_shams", "__import_callBind_callBound", "__import_hasTostringtag_shams", "__import_getIntrinsic", "__import_isRegex", "__import___ToBoolean", "isRegExp", "__import_getIntrinsic", "__import_getIntrinsic", "__import____5_CheckObjectCoercible", "functionsHaveNames", "require_implementation", "__import_functionsHaveNames", "__import___implementation", "__import_defineProperties", "__import_defineProperties", "__import___polyfill", "__import_defineProperties", "__import_callBind", "__import___implementation", "__import___polyfill", "__import___shim", "__import_getIntrinsic", "__import____helpers_isLeadingSurrogate", "__import____helpers_isTrailingSurrogate", "__import_getIntrinsic", "__import_callBind_callBound", "__import____helpers_isLeadingSurrogate", "__import____helpers_isTrailingSurrogate", "__import___Type", "__import___UTF16SurrogatePairToCodePoint", "isNaN", "__import___isNaN", "__import_getIntrinsic", "__import___isNaN", "__import___isFinite", "__import_getIntrinsic", "__import_getIntrinsic", "__import___CodePointAt", "__import___Type", "__import____helpers_isInteger", "__import____helpers_maxSafeInteger", "S", "__import_getIntrinsic", "__import___Type", "__import_hasPropertyDescriptors", "__import_getIntrinsic", "isArray", "__import____helpers_IsArray", "__import_callBind_callBound", "__import_has", "__import_getIntrinsic", "__import_has", "__import___isInteger", "__import___isMatchRecord", "__import____helpers_assertRecord", "__import____helpers_fromPropertyDescriptor", "__import___Type", "__import_has", "__import___Type", "__import____helpers_assertRecord", "__import____helpers_isNaN", "__import_getIntrinsic", "__import____helpers_DefineOwnProperty", "__import___FromPropertyDescriptor", "__import___IsDataDescriptor", "__import___IsPropertyKey", "__import___SameValue", "__import___Type", "__import_getIntrinsic", "__import_callBind_callBound", "__import_objectInspect", "__import_getIntrinsic", "__import_has", "__import_sideChannel", "__import_getIntrinsic", "__import___IsArray", "__import___Type", "__import____helpers_forEach", "__import_internalSlot", "__import_hasProto", "T", "__import_getIntrinsic", "__import_callBind_callBound", "__import___Call", "__import___Get", "__import___IsCallable", "__import___Type", "S", "__import_getIntrinsic", "__import___IsPropertyKey", "__import___SameValue", "__import___Type", "Set", "__import_getIntrinsic", "__import___Type", "require_isPrimitive", "__import_hasTostringtag_shams", "__import_hasSymbols", "isSymbol", "__import___helpers_isPrimitive", "__import_isCallable", "isDate", "__import_isDateObject", "isSymbol", "__import_isSymbol", "GetMethod", "__import_esToPrimitive_es2015", "__import_callBind_callBound", "__import_getIntrinsic", "__import_isRegex", "require_implementation", "__import_esAbstract_2022_RequireObjectCoercible", "__import_esAbstract_2022_ToString", "__import_callBind_callBound", "S", "require_polyfill", "__import___implementation", "require_shim", "__import_defineProperties", "__import___polyfill", "__import_callBind", "__import_defineProperties", "__import_esAbstract_2022_RequireObjectCoercible", "__import___implementation", "__import___polyfill", "__import___shim", "import_string_prototype", "__import_getIntrinsic", "__import_callBind_callBound", "__import_safeRegexTest", "__import_string_prototype_trim", "__import___Type", "__import_getIntrinsic", "__import____helpers_isPrimitive", "__import___ToPrimitive", "__import___StringToNumber", "__import___abs", "__import___floor", "__import___ToNumber", "__import____helpers_isNaN", "__import____helpers_isFinite", "__import____helpers_sign", "__import____helpers_maxSafeInteger", "__import___ToIntegerOrInfinity", "__import_getIntrinsic", "__import_hasTostringtag_shams", "__import_has", "object", "__import_getIntrinsic", "__import_hasSymbols", "__import___AdvanceStringIndex", "__import___CreateIterResultObject", "__import___CreateMethodProperty", "__import___Get", "__import___OrdinaryObjectCreate", "__import___RegExpExec", "Set", "__import___Set", "__import___ToLength", "__import___ToString", "__import___Type", "__import_internalSlot", "__import_esSetTostringtag", "RegExpStringIterator", "S", "__import_getIntrinsic", "__import_getIntrinsic", "__import_has", "__import_has", "__import___Type", "__import____helpers_assertRecord", "__import_has", "__import_getIntrinsic", "__import___Type", "__import___ToBoolean", "__import___IsCallable", "__import_getIntrinsic", "__import____helpers_isPropertyDescriptor", "__import____helpers_DefineOwnProperty", "__import___FromPropertyDescriptor", "__import___IsAccessorDescriptor", "__import___IsDataDescriptor", "__import___IsPropertyKey", "__import___SameValue", "__import___ToPropertyDescriptor", "__import___Type", "__import____GetIntrinsic_js", "__import___DefinePropertyOrThrow", "__import_getIntrinsic", "__import___IsConstructor", "__import___Type", "S", "__import_esAbstract_2022_CreateRegExpStringIterator", "__import_esAbstract_2022_Get", "Set", "__import_esAbstract_2022_Set", "__import_esAbstract_2022_SpeciesConstructor", "__import_esAbstract_2022_ToLength", "__import_esAbstract_2022_ToString", "__import_esAbstract_2022_Type", "__import_regexp_prototype_flags", "__import_callBind_callBound", "S", "__import_hasSymbols", "__import___regexpMatchall", "require_implementation", "__import_esAbstract_2022_Call", "__import_esAbstract_2022_Get", "__import_esAbstract_2022_GetMethod", "__import_esAbstract_2022_IsRegExp", "__import_esAbstract_2022_ToString", "__import_esAbstract_2022_RequireObjectCoercible", "__import_callBind_callBound", "__import_hasSymbols", "__import_regexp_prototype_flags", "__import___polyfillRegexpMatchall", "getMatcher", "matchAll", "isRegExp", "S", "require_polyfill", "__import___implementation", "require_shim", "__import_defineProperties", "__import_hasSymbols", "__import___polyfill", "__import___polyfillRegexpMatchall", "require_string_prototype", "__import_callBind", "__import_defineProperties", "__import___implementation", "__import___polyfill", "__import___shim", "captureStackTrace", "BaseError", "setFunctionName", "properties", "isMergeableObject", "deepmerge", "object", "__import_isobject", "__import_isPlainObject", "__import_isExtendable", "omit", "isFunction", "require_object", "__import_isobject", "pick", "parser", "Remirror", "memo", "useCallback", "useMemo", "ProsemirrorDevTools", "createReactManager", "Token", "html", "Token", "isInlineToken", "rule", "isTextSelection", "MarkExtension", "extension", "location", "TextSelection", "Fragment", "Mark", "Step", "StepResult", "Step", "parent", "StepResult", "Mark", "Fragment", "TextSelection", "MarkExtension", "extension", "isTextSelection", "PlainExtension", "view", "convertCommand", "convertCommand", "convertCommand", "command", "extension", "PlainExtension", "Decoration", "DecorationSet", "__defProp", "__getOwnPropDesc", "__decorateClass", "escapeStringRegex", "matchAll", "Compartment", "exitCode", "TextSelection", "nanoid", "extensions", "nanoid", "TextSelection", "exitCode", "keymap", "EditorView", "cx", "tags", "n", "attrs", "ExternalTokenizer", "LRParser", "styleTags", "tags", "dash", "parser", "tags", "identifier", "callee", "node", "n", "parser", "css", "ContextTracker", "ExternalTokenizer", "LRParser", "LocalTokenGroup", "styleTags", "tags", "newline", "space", "slash", "jsx", "spec_identifier", "parser", "syntaxTree", "LRLanguage", "indentNodeProp", "continuedIndent", "foldNodeProp", "foldInside", "LanguageSupport", "EditorView", "NodeWeakMap", "IterMode", "node", "LRLanguage", "parser", "indentNodeProp", "continuedIndent", "cx", "foldNodeProp", "foldInside", "n", "LanguageSupport", "EditorView", "syntaxTree", "base", "EditorView", "EditorSelection", "syntaxTree", "LRLanguage", "indentNodeProp", "foldNodeProp", "LanguageSupport", "n", "elementName", "identifier", "LRLanguage", "indentNodeProp", "foldNodeProp", "LanguageSupport", "autoCloseTags", "css", "selfClosers", "EditorView", "syntaxTree", "elementName", "to", "base", "EditorSelection", "Compartment", "TextSelection", "Selection", "TextSelection", "command", "ErrorConstant", "extension", "isElementDomNode", "isNumber", "NodeExtension", "nodeInputRule", "jsx", "styled", "useState", "ErrorConstant2", "import_make_error", "import_object", "delay", "noTrailing", "callback", "debounceMode", "timeoutID", "cancelled", "lastExec", "clearExistingTimeout", "clearTimeout", "cancel", "undefined", "wrapper", "arguments_", "self", "elapsed", "Date", "now", "exec", "apply", "clear", "setTimeout", "isString", "styled", "css", "jsx", "styled", "css", "jsx", "jsx", "styled", "useState", "jsx", "useEffect", "useRef", "useState", "jsx", "jsx", "NodeExtension", "isElementDomNode", "createPlaceholder", "pos", "value", "tr", "uploadHandler", "isNumber", "nodeInputRule", "command", "extension", "parse", "ErrorConstant", "command", "extension", "ExtensionTag", "NodeExtension", "nodeInputRule", "omitExtraAttributes", "Popover", "useRef", "jsx", "Popover", "jsx", "NodeExtension", "ExtensionTag", "omitExtraAttributes", "nodeInputRule", "command", "extension", "parser", "PlainExtension", "extension", "PlainExtension", "extension", "extension", "PlainExtension", "Decoration", "DecorationSet", "PlainExtension", "extension", "Decoration", "DecorationSet", "memo", "useMemo", "useCallback", "styled", "extension", "parser", "useCommands", "useEffect", "useRef", "useState", "styled", "jsx", "jsxs", "Container", "styled", "useState", "useRef", "useCommands", "useContext", "styled", "jsx", "Container", "findParentNodeOfType", "isElementDomNode", "Fragment", "jsx", "useCommands", "useEffect", "styled", "Fragment", "jsx", "jsxs", "useRemirrorContext", "useCallback", "useEffect", "useMemo", "useRef", "useState", "memo", "useCallback", "useEffect", "useRef", "useState", "styled", "css", "useState", "memo", "styled", "jsx", "jsxs", "_", "jsx", "jsxs", "memo", "useRef", "useState", "useCallback", "useEffect", "MenuItem", "styled", "css", "Fragment", "jsx", "useRemirrorContext", "useRef", "useEffect", "useState", "useMemo", "useCallback", "jsx", "Fragment", "jsx", "jsxs", "useMemo", "useCallback", "memo", "PlainExtension", "DOMParser", "parser", "html", "slice", "n", "Decoration", "DecorationSet", "languages", "languages", "command", "extension", "findParentNodeOfType", "isElementDomNode", "isTextSelection", "keyBinding", "NodeExtension", "nodeInputRule", "setBlockType", "TextSelection", "extensions", "languages", "NodeExtension", "isElementDomNode", "nodeInputRule", "TextSelection", "isTextSelection", "setBlockType", "findParentNodeOfType", "DecorationSet", "languages", "Decoration", "keyBinding", "command", "extension", "CountExtension", "createReactManager", "jsx", "jsxs", "memo", "Remirror", "ProsemirrorDevTools", "useMemo", "useCallback", "useRemirrorContext", "useCommands", "forwardRef", "memo", "useImperativeHandle", "useMemo", "useState", "useRemirrorContext", "useEffect", "jsx", "memo", "forwardRef", "useState", "useImperativeHandle", "useMemo", "jsx"]
|
|
7
7
|
}
|