@netless/window-manager 1.0.17-beta.1 → 1.0.17

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.
@@ -1 +1 @@
1
- {"version":3,"file":"app-presentation.js","sources":["../node_modules/.pnpm/@netless+app-presentation@0.1.9_jspdf@2.5.2/node_modules/@netless/app-presentation/dist/index.mjs"],"sourcesContent":["var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\n\n// node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/lodash.js\nvar require_lodash = __commonJS({\n \"node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/lodash.js\"(exports, module) {\n (function() {\n var undefined2;\n var VERSION = \"4.17.21\";\n var LARGE_ARRAY_SIZE = 200;\n var CORE_ERROR_TEXT = \"Unsupported core-js use. Try https://npms.io/search?q=ponyfill.\", FUNC_ERROR_TEXT = \"Expected a function\", INVALID_TEMPL_VAR_ERROR_TEXT = \"Invalid `variable` option passed into `_.template`\";\n var HASH_UNDEFINED = \"__lodash_hash_undefined__\";\n var MAX_MEMOIZE_SIZE = 500;\n var PLACEHOLDER = \"__lodash_placeholder__\";\n var CLONE_DEEP_FLAG = 1, CLONE_FLAT_FLAG = 2, CLONE_SYMBOLS_FLAG = 4;\n var COMPARE_PARTIAL_FLAG = 1, COMPARE_UNORDERED_FLAG = 2;\n var WRAP_BIND_FLAG = 1, WRAP_BIND_KEY_FLAG = 2, WRAP_CURRY_BOUND_FLAG = 4, WRAP_CURRY_FLAG = 8, WRAP_CURRY_RIGHT_FLAG = 16, WRAP_PARTIAL_FLAG = 32, WRAP_PARTIAL_RIGHT_FLAG = 64, WRAP_ARY_FLAG = 128, WRAP_REARG_FLAG = 256, WRAP_FLIP_FLAG = 512;\n var DEFAULT_TRUNC_LENGTH = 30, DEFAULT_TRUNC_OMISSION = \"...\";\n var HOT_COUNT = 800, HOT_SPAN = 16;\n var LAZY_FILTER_FLAG = 1, LAZY_MAP_FLAG = 2, LAZY_WHILE_FLAG = 3;\n var INFINITY = 1 / 0, MAX_SAFE_INTEGER = 9007199254740991, MAX_INTEGER = 17976931348623157e292, NAN = 0 / 0;\n var MAX_ARRAY_LENGTH = 4294967295, MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1, HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;\n var wrapFlags = [\n [\"ary\", WRAP_ARY_FLAG],\n [\"bind\", WRAP_BIND_FLAG],\n [\"bindKey\", WRAP_BIND_KEY_FLAG],\n [\"curry\", WRAP_CURRY_FLAG],\n [\"curryRight\", WRAP_CURRY_RIGHT_FLAG],\n [\"flip\", WRAP_FLIP_FLAG],\n [\"partial\", WRAP_PARTIAL_FLAG],\n [\"partialRight\", WRAP_PARTIAL_RIGHT_FLAG],\n [\"rearg\", WRAP_REARG_FLAG]\n ];\n var argsTag = \"[object Arguments]\", arrayTag = \"[object Array]\", asyncTag = \"[object AsyncFunction]\", boolTag = \"[object Boolean]\", dateTag = \"[object Date]\", domExcTag = \"[object DOMException]\", errorTag = \"[object Error]\", funcTag = \"[object Function]\", genTag = \"[object GeneratorFunction]\", mapTag = \"[object Map]\", numberTag = \"[object Number]\", nullTag = \"[object Null]\", objectTag = \"[object Object]\", promiseTag = \"[object Promise]\", proxyTag = \"[object Proxy]\", regexpTag = \"[object RegExp]\", setTag = \"[object Set]\", stringTag = \"[object String]\", symbolTag = \"[object Symbol]\", undefinedTag = \"[object Undefined]\", weakMapTag = \"[object WeakMap]\", weakSetTag = \"[object WeakSet]\";\n var arrayBufferTag = \"[object ArrayBuffer]\", dataViewTag = \"[object DataView]\", float32Tag = \"[object Float32Array]\", float64Tag = \"[object Float64Array]\", int8Tag = \"[object Int8Array]\", int16Tag = \"[object Int16Array]\", int32Tag = \"[object Int32Array]\", uint8Tag = \"[object Uint8Array]\", uint8ClampedTag = \"[object Uint8ClampedArray]\", uint16Tag = \"[object Uint16Array]\", uint32Tag = \"[object Uint32Array]\";\n var reEmptyStringLeading = /\\b__p \\+= '';/g, reEmptyStringMiddle = /\\b(__p \\+=) '' \\+/g, reEmptyStringTrailing = /(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g;\n var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g, reUnescapedHtml = /[&<>\"']/g, reHasEscapedHtml = RegExp(reEscapedHtml.source), reHasUnescapedHtml = RegExp(reUnescapedHtml.source);\n var reEscape = /<%-([\\s\\S]+?)%>/g, reEvaluate = /<%([\\s\\S]+?)%>/g, reInterpolate = /<%=([\\s\\S]+?)%>/g;\n var reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/, reIsPlainProp = /^\\w*$/, rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n var reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g, reHasRegExpChar = RegExp(reRegExpChar.source);\n var reTrimStart = /^\\s+/;\n var reWhitespace = /\\s/;\n var reWrapComment = /\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/, reWrapDetails = /\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/, reSplitDetails = /,? & /;\n var reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n var reForbiddenIdentifierChars = /[()=,{}\\[\\]\\/\\s]/;\n var reEscapeChar = /\\\\(\\\\)?/g;\n var reEsTemplate = /\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g;\n var reFlags = /\\w*$/;\n var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n var reIsBinary = /^0b[01]+$/i;\n var reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n var reIsOctal = /^0o[0-7]+$/i;\n var reIsUint = /^(?:0|[1-9]\\d*)$/;\n var reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n var reNoMatch = /($^)/;\n var reUnescapedString = /['\\n\\r\\u2028\\u2029\\\\]/g;\n var rsAstralRange = \"\\\\ud800-\\\\udfff\", rsComboMarksRange = \"\\\\u0300-\\\\u036f\", reComboHalfMarksRange = \"\\\\ufe20-\\\\ufe2f\", rsComboSymbolsRange = \"\\\\u20d0-\\\\u20ff\", rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, rsDingbatRange = \"\\\\u2700-\\\\u27bf\", rsLowerRange = \"a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff\", rsMathOpRange = \"\\\\xac\\\\xb1\\\\xd7\\\\xf7\", rsNonCharRange = \"\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\", rsPunctuationRange = \"\\\\u2000-\\\\u206f\", rsSpaceRange = \" \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\", rsUpperRange = \"A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde\", rsVarRange = \"\\\\ufe0e\\\\ufe0f\", rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n var rsApos = \"['\\u2019]\", rsAstral = \"[\" + rsAstralRange + \"]\", rsBreak = \"[\" + rsBreakRange + \"]\", rsCombo = \"[\" + rsComboRange + \"]\", rsDigits = \"\\\\d+\", rsDingbat = \"[\" + rsDingbatRange + \"]\", rsLower = \"[\" + rsLowerRange + \"]\", rsMisc = \"[^\" + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + \"]\", rsFitz = \"\\\\ud83c[\\\\udffb-\\\\udfff]\", rsModifier = \"(?:\" + rsCombo + \"|\" + rsFitz + \")\", rsNonAstral = \"[^\" + rsAstralRange + \"]\", rsRegional = \"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\", rsSurrPair = \"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\", rsUpper = \"[\" + rsUpperRange + \"]\", rsZWJ = \"\\\\u200d\";\n var rsMiscLower = \"(?:\" + rsLower + \"|\" + rsMisc + \")\", rsMiscUpper = \"(?:\" + rsUpper + \"|\" + rsMisc + \")\", rsOptContrLower = \"(?:\" + rsApos + \"(?:d|ll|m|re|s|t|ve))?\", rsOptContrUpper = \"(?:\" + rsApos + \"(?:D|LL|M|RE|S|T|VE))?\", reOptMod = rsModifier + \"?\", rsOptVar = \"[\" + rsVarRange + \"]?\", rsOptJoin = \"(?:\" + rsZWJ + \"(?:\" + [rsNonAstral, rsRegional, rsSurrPair].join(\"|\") + \")\" + rsOptVar + reOptMod + \")*\", rsOrdLower = \"\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])\", rsOrdUpper = \"\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])\", rsSeq = rsOptVar + reOptMod + rsOptJoin, rsEmoji = \"(?:\" + [rsDingbat, rsRegional, rsSurrPair].join(\"|\") + \")\" + rsSeq, rsSymbol = \"(?:\" + [rsNonAstral + rsCombo + \"?\", rsCombo, rsRegional, rsSurrPair, rsAstral].join(\"|\") + \")\";\n var reApos = RegExp(rsApos, \"g\");\n var reComboMark = RegExp(rsCombo, \"g\");\n var reUnicode = RegExp(rsFitz + \"(?=\" + rsFitz + \")|\" + rsSymbol + rsSeq, \"g\");\n var reUnicodeWord = RegExp([\n rsUpper + \"?\" + rsLower + \"+\" + rsOptContrLower + \"(?=\" + [rsBreak, rsUpper, \"$\"].join(\"|\") + \")\",\n rsMiscUpper + \"+\" + rsOptContrUpper + \"(?=\" + [rsBreak, rsUpper + rsMiscLower, \"$\"].join(\"|\") + \")\",\n rsUpper + \"?\" + rsMiscLower + \"+\" + rsOptContrLower,\n rsUpper + \"+\" + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n ].join(\"|\"), \"g\");\n var reHasUnicode = RegExp(\"[\" + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + \"]\");\n var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n var contextProps = [\n \"Array\",\n \"Buffer\",\n \"DataView\",\n \"Date\",\n \"Error\",\n \"Float32Array\",\n \"Float64Array\",\n \"Function\",\n \"Int8Array\",\n \"Int16Array\",\n \"Int32Array\",\n \"Map\",\n \"Math\",\n \"Object\",\n \"Promise\",\n \"RegExp\",\n \"Set\",\n \"String\",\n \"Symbol\",\n \"TypeError\",\n \"Uint8Array\",\n \"Uint8ClampedArray\",\n \"Uint16Array\",\n \"Uint32Array\",\n \"WeakMap\",\n \"_\",\n \"clearTimeout\",\n \"isFinite\",\n \"parseInt\",\n \"setTimeout\"\n ];\n var templateCounter = -1;\n var typedArrayTags = {};\n typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true;\n typedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;\n var cloneableTags = {};\n cloneableTags[argsTag] = cloneableTags[arrayTag] = cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = cloneableTags[boolTag] = cloneableTags[dateTag] = cloneableTags[float32Tag] = cloneableTags[float64Tag] = cloneableTags[int8Tag] = cloneableTags[int16Tag] = cloneableTags[int32Tag] = cloneableTags[mapTag] = cloneableTags[numberTag] = cloneableTags[objectTag] = cloneableTags[regexpTag] = cloneableTags[setTag] = cloneableTags[stringTag] = cloneableTags[symbolTag] = cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\n cloneableTags[errorTag] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = false;\n var deburredLetters = {\n // Latin-1 Supplement block.\n \"\\xC0\": \"A\",\n \"\\xC1\": \"A\",\n \"\\xC2\": \"A\",\n \"\\xC3\": \"A\",\n \"\\xC4\": \"A\",\n \"\\xC5\": \"A\",\n \"\\xE0\": \"a\",\n \"\\xE1\": \"a\",\n \"\\xE2\": \"a\",\n \"\\xE3\": \"a\",\n \"\\xE4\": \"a\",\n \"\\xE5\": \"a\",\n \"\\xC7\": \"C\",\n \"\\xE7\": \"c\",\n \"\\xD0\": \"D\",\n \"\\xF0\": \"d\",\n \"\\xC8\": \"E\",\n \"\\xC9\": \"E\",\n \"\\xCA\": \"E\",\n \"\\xCB\": \"E\",\n \"\\xE8\": \"e\",\n \"\\xE9\": \"e\",\n \"\\xEA\": \"e\",\n \"\\xEB\": \"e\",\n \"\\xCC\": \"I\",\n \"\\xCD\": \"I\",\n \"\\xCE\": \"I\",\n \"\\xCF\": \"I\",\n \"\\xEC\": \"i\",\n \"\\xED\": \"i\",\n \"\\xEE\": \"i\",\n \"\\xEF\": \"i\",\n \"\\xD1\": \"N\",\n \"\\xF1\": \"n\",\n \"\\xD2\": \"O\",\n \"\\xD3\": \"O\",\n \"\\xD4\": \"O\",\n \"\\xD5\": \"O\",\n \"\\xD6\": \"O\",\n \"\\xD8\": \"O\",\n \"\\xF2\": \"o\",\n \"\\xF3\": \"o\",\n \"\\xF4\": \"o\",\n \"\\xF5\": \"o\",\n \"\\xF6\": \"o\",\n \"\\xF8\": \"o\",\n \"\\xD9\": \"U\",\n \"\\xDA\": \"U\",\n \"\\xDB\": \"U\",\n \"\\xDC\": \"U\",\n \"\\xF9\": \"u\",\n \"\\xFA\": \"u\",\n \"\\xFB\": \"u\",\n \"\\xFC\": \"u\",\n \"\\xDD\": \"Y\",\n \"\\xFD\": \"y\",\n \"\\xFF\": \"y\",\n \"\\xC6\": \"Ae\",\n \"\\xE6\": \"ae\",\n \"\\xDE\": \"Th\",\n \"\\xFE\": \"th\",\n \"\\xDF\": \"ss\",\n // Latin Extended-A block.\n \"\\u0100\": \"A\",\n \"\\u0102\": \"A\",\n \"\\u0104\": \"A\",\n \"\\u0101\": \"a\",\n \"\\u0103\": \"a\",\n \"\\u0105\": \"a\",\n \"\\u0106\": \"C\",\n \"\\u0108\": \"C\",\n \"\\u010A\": \"C\",\n \"\\u010C\": \"C\",\n \"\\u0107\": \"c\",\n \"\\u0109\": \"c\",\n \"\\u010B\": \"c\",\n \"\\u010D\": \"c\",\n \"\\u010E\": \"D\",\n \"\\u0110\": \"D\",\n \"\\u010F\": \"d\",\n \"\\u0111\": \"d\",\n \"\\u0112\": \"E\",\n \"\\u0114\": \"E\",\n \"\\u0116\": \"E\",\n \"\\u0118\": \"E\",\n \"\\u011A\": \"E\",\n \"\\u0113\": \"e\",\n \"\\u0115\": \"e\",\n \"\\u0117\": \"e\",\n \"\\u0119\": \"e\",\n \"\\u011B\": \"e\",\n \"\\u011C\": \"G\",\n \"\\u011E\": \"G\",\n \"\\u0120\": \"G\",\n \"\\u0122\": \"G\",\n \"\\u011D\": \"g\",\n \"\\u011F\": \"g\",\n \"\\u0121\": \"g\",\n \"\\u0123\": \"g\",\n \"\\u0124\": \"H\",\n \"\\u0126\": \"H\",\n \"\\u0125\": \"h\",\n \"\\u0127\": \"h\",\n \"\\u0128\": \"I\",\n \"\\u012A\": \"I\",\n \"\\u012C\": \"I\",\n \"\\u012E\": \"I\",\n \"\\u0130\": \"I\",\n \"\\u0129\": \"i\",\n \"\\u012B\": \"i\",\n \"\\u012D\": \"i\",\n \"\\u012F\": \"i\",\n \"\\u0131\": \"i\",\n \"\\u0134\": \"J\",\n \"\\u0135\": \"j\",\n \"\\u0136\": \"K\",\n \"\\u0137\": \"k\",\n \"\\u0138\": \"k\",\n \"\\u0139\": \"L\",\n \"\\u013B\": \"L\",\n \"\\u013D\": \"L\",\n \"\\u013F\": \"L\",\n \"\\u0141\": \"L\",\n \"\\u013A\": \"l\",\n \"\\u013C\": \"l\",\n \"\\u013E\": \"l\",\n \"\\u0140\": \"l\",\n \"\\u0142\": \"l\",\n \"\\u0143\": \"N\",\n \"\\u0145\": \"N\",\n \"\\u0147\": \"N\",\n \"\\u014A\": \"N\",\n \"\\u0144\": \"n\",\n \"\\u0146\": \"n\",\n \"\\u0148\": \"n\",\n \"\\u014B\": \"n\",\n \"\\u014C\": \"O\",\n \"\\u014E\": \"O\",\n \"\\u0150\": \"O\",\n \"\\u014D\": \"o\",\n \"\\u014F\": \"o\",\n \"\\u0151\": \"o\",\n \"\\u0154\": \"R\",\n \"\\u0156\": \"R\",\n \"\\u0158\": \"R\",\n \"\\u0155\": \"r\",\n \"\\u0157\": \"r\",\n \"\\u0159\": \"r\",\n \"\\u015A\": \"S\",\n \"\\u015C\": \"S\",\n \"\\u015E\": \"S\",\n \"\\u0160\": \"S\",\n \"\\u015B\": \"s\",\n \"\\u015D\": \"s\",\n \"\\u015F\": \"s\",\n \"\\u0161\": \"s\",\n \"\\u0162\": \"T\",\n \"\\u0164\": \"T\",\n \"\\u0166\": \"T\",\n \"\\u0163\": \"t\",\n \"\\u0165\": \"t\",\n \"\\u0167\": \"t\",\n \"\\u0168\": \"U\",\n \"\\u016A\": \"U\",\n \"\\u016C\": \"U\",\n \"\\u016E\": \"U\",\n \"\\u0170\": \"U\",\n \"\\u0172\": \"U\",\n \"\\u0169\": \"u\",\n \"\\u016B\": \"u\",\n \"\\u016D\": \"u\",\n \"\\u016F\": \"u\",\n \"\\u0171\": \"u\",\n \"\\u0173\": \"u\",\n \"\\u0174\": \"W\",\n \"\\u0175\": \"w\",\n \"\\u0176\": \"Y\",\n \"\\u0177\": \"y\",\n \"\\u0178\": \"Y\",\n \"\\u0179\": \"Z\",\n \"\\u017B\": \"Z\",\n \"\\u017D\": \"Z\",\n \"\\u017A\": \"z\",\n \"\\u017C\": \"z\",\n \"\\u017E\": \"z\",\n \"\\u0132\": \"IJ\",\n \"\\u0133\": \"ij\",\n \"\\u0152\": \"Oe\",\n \"\\u0153\": \"oe\",\n \"\\u0149\": \"'n\",\n \"\\u017F\": \"s\"\n };\n var htmlEscapes = {\n \"&\": \"&amp;\",\n \"<\": \"&lt;\",\n \">\": \"&gt;\",\n '\"': \"&quot;\",\n \"'\": \"&#39;\"\n };\n var htmlUnescapes = {\n \"&amp;\": \"&\",\n \"&lt;\": \"<\",\n \"&gt;\": \">\",\n \"&quot;\": '\"',\n \"&#39;\": \"'\"\n };\n var stringEscapes = {\n \"\\\\\": \"\\\\\",\n \"'\": \"'\",\n \"\\n\": \"n\",\n \"\\r\": \"r\",\n \"\\u2028\": \"u2028\",\n \"\\u2029\": \"u2029\"\n };\n var freeParseFloat = parseFloat, freeParseInt = parseInt;\n var freeGlobal = typeof global == \"object\" && global && global.Object === Object && global;\n var freeSelf = typeof self == \"object\" && self && self.Object === Object && self;\n var root = freeGlobal || freeSelf || Function(\"return this\")();\n var freeExports = typeof exports == \"object\" && exports && !exports.nodeType && exports;\n var freeModule = freeExports && typeof module == \"object\" && module && !module.nodeType && module;\n var moduleExports = freeModule && freeModule.exports === freeExports;\n var freeProcess = moduleExports && freeGlobal.process;\n var nodeUtil = function() {\n try {\n var types = freeModule && freeModule.require && freeModule.require(\"util\").types;\n if (types) {\n return types;\n }\n return freeProcess && freeProcess.binding && freeProcess.binding(\"util\");\n } catch (e) {\n }\n }();\n var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer, nodeIsDate = nodeUtil && nodeUtil.isDate, nodeIsMap = nodeUtil && nodeUtil.isMap, nodeIsRegExp = nodeUtil && nodeUtil.isRegExp, nodeIsSet = nodeUtil && nodeUtil.isSet, nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n function apply(func, thisArg, args) {\n switch (args.length) {\n case 0:\n return func.call(thisArg);\n case 1:\n return func.call(thisArg, args[0]);\n case 2:\n return func.call(thisArg, args[0], args[1]);\n case 3:\n return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n }\n function arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1, length = array == null ? 0 : array.length;\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n }\n function arrayEach(array, iteratee) {\n var index = -1, length = array == null ? 0 : array.length;\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n }\n function arrayEachRight(array, iteratee) {\n var length = array == null ? 0 : array.length;\n while (length--) {\n if (iteratee(array[length], length, array) === false) {\n break;\n }\n }\n return array;\n }\n function arrayEvery(array, predicate) {\n var index = -1, length = array == null ? 0 : array.length;\n while (++index < length) {\n if (!predicate(array[index], index, array)) {\n return false;\n }\n }\n return true;\n }\n function arrayFilter(array, predicate) {\n var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result = [];\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n }\n function arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n }\n function arrayIncludesWith(array, value, comparator) {\n var index = -1, length = array == null ? 0 : array.length;\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n }\n function arrayMap(array, iteratee) {\n var index = -1, length = array == null ? 0 : array.length, result = Array(length);\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n }\n function arrayPush(array, values) {\n var index = -1, length = values.length, offset = array.length;\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n }\n function arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1, length = array == null ? 0 : array.length;\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n }\n function arrayReduceRight(array, iteratee, accumulator, initAccum) {\n var length = array == null ? 0 : array.length;\n if (initAccum && length) {\n accumulator = array[--length];\n }\n while (length--) {\n accumulator = iteratee(accumulator, array[length], length, array);\n }\n return accumulator;\n }\n function arraySome(array, predicate) {\n var index = -1, length = array == null ? 0 : array.length;\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n }\n var asciiSize = baseProperty(\"length\");\n function asciiToArray(string) {\n return string.split(\"\");\n }\n function asciiWords(string) {\n return string.match(reAsciiWord) || [];\n }\n function baseFindKey(collection, predicate, eachFunc) {\n var result;\n eachFunc(collection, function(value, key, collection2) {\n if (predicate(value, key, collection2)) {\n result = key;\n return false;\n }\n });\n return result;\n }\n function baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length, index = fromIndex + (fromRight ? 1 : -1);\n while (fromRight ? index-- : ++index < length) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n }\n function baseIndexOf(array, value, fromIndex) {\n return value === value ? strictIndexOf(array, value, fromIndex) : baseFindIndex(array, baseIsNaN, fromIndex);\n }\n function baseIndexOfWith(array, value, fromIndex, comparator) {\n var index = fromIndex - 1, length = array.length;\n while (++index < length) {\n if (comparator(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n function baseIsNaN(value) {\n return value !== value;\n }\n function baseMean(array, iteratee) {\n var length = array == null ? 0 : array.length;\n return length ? baseSum(array, iteratee) / length : NAN;\n }\n function baseProperty(key) {\n return function(object) {\n return object == null ? undefined2 : object[key];\n };\n }\n function basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined2 : object[key];\n };\n }\n function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection2) {\n accumulator = initAccum ? (initAccum = false, value) : iteratee(accumulator, value, index, collection2);\n });\n return accumulator;\n }\n function baseSortBy(array, comparer) {\n var length = array.length;\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n }\n function baseSum(array, iteratee) {\n var result, index = -1, length = array.length;\n while (++index < length) {\n var current = iteratee(array[index]);\n if (current !== undefined2) {\n result = result === undefined2 ? current : result + current;\n }\n }\n return result;\n }\n function baseTimes(n, iteratee) {\n var index = -1, result = Array(n);\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n }\n function baseToPairs(object, props) {\n return arrayMap(props, function(key) {\n return [key, object[key]];\n });\n }\n function baseTrim(string) {\n return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, \"\") : string;\n }\n function baseUnary(func) {\n return function(value) {\n return func(value);\n };\n }\n function baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n }\n function cacheHas(cache, key) {\n return cache.has(key);\n }\n function charsStartIndex(strSymbols, chrSymbols) {\n var index = -1, length = strSymbols.length;\n while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {\n }\n return index;\n }\n function charsEndIndex(strSymbols, chrSymbols) {\n var index = strSymbols.length;\n while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {\n }\n return index;\n }\n function countHolders(array, placeholder) {\n var length = array.length, result = 0;\n while (length--) {\n if (array[length] === placeholder) {\n ++result;\n }\n }\n return result;\n }\n var deburrLetter = basePropertyOf(deburredLetters);\n var escapeHtmlChar = basePropertyOf(htmlEscapes);\n function escapeStringChar(chr) {\n return \"\\\\\" + stringEscapes[chr];\n }\n function getValue(object, key) {\n return object == null ? undefined2 : object[key];\n }\n function hasUnicode(string) {\n return reHasUnicode.test(string);\n }\n function hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n }\n function iteratorToArray(iterator) {\n var data, result = [];\n while (!(data = iterator.next()).done) {\n result.push(data.value);\n }\n return result;\n }\n function mapToArray(map) {\n var index = -1, result = Array(map.size);\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n }\n function overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n }\n function replaceHolders(array, placeholder) {\n var index = -1, length = array.length, resIndex = 0, result = [];\n while (++index < length) {\n var value = array[index];\n if (value === placeholder || value === PLACEHOLDER) {\n array[index] = PLACEHOLDER;\n result[resIndex++] = index;\n }\n }\n return result;\n }\n function setToArray(set) {\n var index = -1, result = Array(set.size);\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n }\n function setToPairs(set) {\n var index = -1, result = Array(set.size);\n set.forEach(function(value) {\n result[++index] = [value, value];\n });\n return result;\n }\n function strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1, length = array.length;\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n }\n function strictLastIndexOf(array, value, fromIndex) {\n var index = fromIndex + 1;\n while (index--) {\n if (array[index] === value) {\n return index;\n }\n }\n return index;\n }\n function stringSize(string) {\n return hasUnicode(string) ? unicodeSize(string) : asciiSize(string);\n }\n function stringToArray(string) {\n return hasUnicode(string) ? unicodeToArray(string) : asciiToArray(string);\n }\n function trimmedEndIndex(string) {\n var index = string.length;\n while (index-- && reWhitespace.test(string.charAt(index))) {\n }\n return index;\n }\n var unescapeHtmlChar = basePropertyOf(htmlUnescapes);\n function unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n ++result;\n }\n return result;\n }\n function unicodeToArray(string) {\n return string.match(reUnicode) || [];\n }\n function unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n }\n var runInContext = function runInContext2(context) {\n context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps));\n var Array2 = context.Array, Date2 = context.Date, Error2 = context.Error, Function2 = context.Function, Math2 = context.Math, Object2 = context.Object, RegExp2 = context.RegExp, String2 = context.String, TypeError2 = context.TypeError;\n var arrayProto = Array2.prototype, funcProto = Function2.prototype, objectProto = Object2.prototype;\n var coreJsData = context[\"__core-js_shared__\"];\n var funcToString = funcProto.toString;\n var hasOwnProperty = objectProto.hasOwnProperty;\n var idCounter = 0;\n var maskSrcKey = function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || \"\");\n return uid ? \"Symbol(src)_1.\" + uid : \"\";\n }();\n var nativeObjectToString = objectProto.toString;\n var objectCtorString = funcToString.call(Object2);\n var oldDash = root._;\n var reIsNative = RegExp2(\n \"^\" + funcToString.call(hasOwnProperty).replace(reRegExpChar, \"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, \"$1.*?\") + \"$\"\n );\n var Buffer2 = moduleExports ? context.Buffer : undefined2, Symbol2 = context.Symbol, Uint8Array2 = context.Uint8Array, allocUnsafe = Buffer2 ? Buffer2.allocUnsafe : undefined2, getPrototype = overArg(Object2.getPrototypeOf, Object2), objectCreate = Object2.create, propertyIsEnumerable = objectProto.propertyIsEnumerable, splice = arrayProto.splice, spreadableSymbol = Symbol2 ? Symbol2.isConcatSpreadable : undefined2, symIterator = Symbol2 ? Symbol2.iterator : undefined2, symToStringTag = Symbol2 ? Symbol2.toStringTag : undefined2;\n var defineProperty = function() {\n try {\n var func = getNative(Object2, \"defineProperty\");\n func({}, \"\", {});\n return func;\n } catch (e) {\n }\n }();\n var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout, ctxNow = Date2 && Date2.now !== root.Date.now && Date2.now, ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout;\n var nativeCeil = Math2.ceil, nativeFloor = Math2.floor, nativeGetSymbols = Object2.getOwnPropertySymbols, nativeIsBuffer = Buffer2 ? Buffer2.isBuffer : undefined2, nativeIsFinite = context.isFinite, nativeJoin = arrayProto.join, nativeKeys = overArg(Object2.keys, Object2), nativeMax = Math2.max, nativeMin = Math2.min, nativeNow = Date2.now, nativeParseInt = context.parseInt, nativeRandom = Math2.random, nativeReverse = arrayProto.reverse;\n var DataView = getNative(context, \"DataView\"), Map2 = getNative(context, \"Map\"), Promise2 = getNative(context, \"Promise\"), Set2 = getNative(context, \"Set\"), WeakMap = getNative(context, \"WeakMap\"), nativeCreate = getNative(Object2, \"create\");\n var metaMap = WeakMap && new WeakMap();\n var realNames = {};\n var dataViewCtorString = toSource(DataView), mapCtorString = toSource(Map2), promiseCtorString = toSource(Promise2), setCtorString = toSource(Set2), weakMapCtorString = toSource(WeakMap);\n var symbolProto = Symbol2 ? Symbol2.prototype : undefined2, symbolValueOf = symbolProto ? symbolProto.valueOf : undefined2, symbolToString = symbolProto ? symbolProto.toString : undefined2;\n function lodash(value) {\n if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {\n if (value instanceof LodashWrapper) {\n return value;\n }\n if (hasOwnProperty.call(value, \"__wrapped__\")) {\n return wrapperClone(value);\n }\n }\n return new LodashWrapper(value);\n }\n var baseCreate = /* @__PURE__ */ function() {\n function object() {\n }\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result2 = new object();\n object.prototype = undefined2;\n return result2;\n };\n }();\n function baseLodash() {\n }\n function LodashWrapper(value, chainAll) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__chain__ = !!chainAll;\n this.__index__ = 0;\n this.__values__ = undefined2;\n }\n lodash.templateSettings = {\n /**\n * Used to detect `data` property values to be HTML-escaped.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n \"escape\": reEscape,\n /**\n * Used to detect code to be evaluated.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n \"evaluate\": reEvaluate,\n /**\n * Used to detect `data` property values to inject.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n \"interpolate\": reInterpolate,\n /**\n * Used to reference the data object in the template text.\n *\n * @memberOf _.templateSettings\n * @type {string}\n */\n \"variable\": \"\",\n /**\n * Used to import variables into the compiled template.\n *\n * @memberOf _.templateSettings\n * @type {Object}\n */\n \"imports\": {\n /**\n * A reference to the `lodash` function.\n *\n * @memberOf _.templateSettings.imports\n * @type {Function}\n */\n \"_\": lodash\n }\n };\n lodash.prototype = baseLodash.prototype;\n lodash.prototype.constructor = lodash;\n LodashWrapper.prototype = baseCreate(baseLodash.prototype);\n LodashWrapper.prototype.constructor = LodashWrapper;\n function LazyWrapper(value) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__dir__ = 1;\n this.__filtered__ = false;\n this.__iteratees__ = [];\n this.__takeCount__ = MAX_ARRAY_LENGTH;\n this.__views__ = [];\n }\n function lazyClone() {\n var result2 = new LazyWrapper(this.__wrapped__);\n result2.__actions__ = copyArray(this.__actions__);\n result2.__dir__ = this.__dir__;\n result2.__filtered__ = this.__filtered__;\n result2.__iteratees__ = copyArray(this.__iteratees__);\n result2.__takeCount__ = this.__takeCount__;\n result2.__views__ = copyArray(this.__views__);\n return result2;\n }\n function lazyReverse() {\n if (this.__filtered__) {\n var result2 = new LazyWrapper(this);\n result2.__dir__ = -1;\n result2.__filtered__ = true;\n } else {\n result2 = this.clone();\n result2.__dir__ *= -1;\n }\n return result2;\n }\n function lazyValue() {\n var array = this.__wrapped__.value(), dir = this.__dir__, isArr = isArray(array), isRight = dir < 0, arrLength = isArr ? array.length : 0, view = getView(0, arrLength, this.__views__), start = view.start, end = view.end, length = end - start, index = isRight ? end : start - 1, iteratees = this.__iteratees__, iterLength = iteratees.length, resIndex = 0, takeCount = nativeMin(length, this.__takeCount__);\n if (!isArr || !isRight && arrLength == length && takeCount == length) {\n return baseWrapperValue(array, this.__actions__);\n }\n var result2 = [];\n outer:\n while (length-- && resIndex < takeCount) {\n index += dir;\n var iterIndex = -1, value = array[index];\n while (++iterIndex < iterLength) {\n var data = iteratees[iterIndex], iteratee2 = data.iteratee, type = data.type, computed = iteratee2(value);\n if (type == LAZY_MAP_FLAG) {\n value = computed;\n } else if (!computed) {\n if (type == LAZY_FILTER_FLAG) {\n continue outer;\n } else {\n break outer;\n }\n }\n }\n result2[resIndex++] = value;\n }\n return result2;\n }\n LazyWrapper.prototype = baseCreate(baseLodash.prototype);\n LazyWrapper.prototype.constructor = LazyWrapper;\n function Hash(entries) {\n var index = -1, length = entries == null ? 0 : entries.length;\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n function hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n }\n function hashDelete(key) {\n var result2 = this.has(key) && delete this.__data__[key];\n this.size -= result2 ? 1 : 0;\n return result2;\n }\n function hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result2 = data[key];\n return result2 === HASH_UNDEFINED ? undefined2 : result2;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined2;\n }\n function hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined2 : hasOwnProperty.call(data, key);\n }\n function hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = nativeCreate && value === undefined2 ? HASH_UNDEFINED : value;\n return this;\n }\n Hash.prototype.clear = hashClear;\n Hash.prototype[\"delete\"] = hashDelete;\n Hash.prototype.get = hashGet;\n Hash.prototype.has = hashHas;\n Hash.prototype.set = hashSet;\n function ListCache(entries) {\n var index = -1, length = entries == null ? 0 : entries.length;\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n function listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n }\n function listCacheDelete(key) {\n var data = this.__data__, index = assocIndexOf(data, key);\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n }\n function listCacheGet(key) {\n var data = this.__data__, index = assocIndexOf(data, key);\n return index < 0 ? undefined2 : data[index][1];\n }\n function listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n }\n function listCacheSet(key, value) {\n var data = this.__data__, index = assocIndexOf(data, key);\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n }\n ListCache.prototype.clear = listCacheClear;\n ListCache.prototype[\"delete\"] = listCacheDelete;\n ListCache.prototype.get = listCacheGet;\n ListCache.prototype.has = listCacheHas;\n ListCache.prototype.set = listCacheSet;\n function MapCache(entries) {\n var index = -1, length = entries == null ? 0 : entries.length;\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n function mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n \"hash\": new Hash(),\n \"map\": new (Map2 || ListCache)(),\n \"string\": new Hash()\n };\n }\n function mapCacheDelete(key) {\n var result2 = getMapData(this, key)[\"delete\"](key);\n this.size -= result2 ? 1 : 0;\n return result2;\n }\n function mapCacheGet(key) {\n return getMapData(this, key).get(key);\n }\n function mapCacheHas(key) {\n return getMapData(this, key).has(key);\n }\n function mapCacheSet(key, value) {\n var data = getMapData(this, key), size3 = data.size;\n data.set(key, value);\n this.size += data.size == size3 ? 0 : 1;\n return this;\n }\n MapCache.prototype.clear = mapCacheClear;\n MapCache.prototype[\"delete\"] = mapCacheDelete;\n MapCache.prototype.get = mapCacheGet;\n MapCache.prototype.has = mapCacheHas;\n MapCache.prototype.set = mapCacheSet;\n function SetCache(values2) {\n var index = -1, length = values2 == null ? 0 : values2.length;\n this.__data__ = new MapCache();\n while (++index < length) {\n this.add(values2[index]);\n }\n }\n function setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n }\n function setCacheHas(value) {\n return this.__data__.has(value);\n }\n SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\n SetCache.prototype.has = setCacheHas;\n function Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n }\n function stackClear() {\n this.__data__ = new ListCache();\n this.size = 0;\n }\n function stackDelete(key) {\n var data = this.__data__, result2 = data[\"delete\"](key);\n this.size = data.size;\n return result2;\n }\n function stackGet(key) {\n return this.__data__.get(key);\n }\n function stackHas(key) {\n return this.__data__.has(key);\n }\n function stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map2 || pairs.length < LARGE_ARRAY_SIZE - 1) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n }\n Stack.prototype.clear = stackClear;\n Stack.prototype[\"delete\"] = stackDelete;\n Stack.prototype.get = stackGet;\n Stack.prototype.has = stackHas;\n Stack.prototype.set = stackSet;\n function arrayLikeKeys(value, inherited) {\n var isArr = isArray(value), isArg = !isArr && isArguments(value), isBuff = !isArr && !isArg && isBuffer(value), isType = !isArr && !isArg && !isBuff && isTypedArray(value), skipIndexes = isArr || isArg || isBuff || isType, result2 = skipIndexes ? baseTimes(value.length, String2) : [], length = result2.length;\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && // Safari 9 has enumerable `arguments.length` in strict mode.\n (key == \"length\" || // Node.js 0.10 has enumerable non-index properties on buffers.\n isBuff && (key == \"offset\" || key == \"parent\") || // PhantomJS 2 has enumerable non-index properties on typed arrays.\n isType && (key == \"buffer\" || key == \"byteLength\" || key == \"byteOffset\") || // Skip index properties.\n isIndex(key, length)))) {\n result2.push(key);\n }\n }\n return result2;\n }\n function arraySample(array) {\n var length = array.length;\n return length ? array[baseRandom(0, length - 1)] : undefined2;\n }\n function arraySampleSize(array, n) {\n return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length));\n }\n function arrayShuffle(array) {\n return shuffleSelf(copyArray(array));\n }\n function assignMergeValue(object, key, value) {\n if (value !== undefined2 && !eq(object[key], value) || value === undefined2 && !(key in object)) {\n baseAssignValue(object, key, value);\n }\n }\n function assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || value === undefined2 && !(key in object)) {\n baseAssignValue(object, key, value);\n }\n }\n function assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n }\n function baseAggregator(collection, setter, iteratee2, accumulator) {\n baseEach(collection, function(value, key, collection2) {\n setter(accumulator, value, iteratee2(value), collection2);\n });\n return accumulator;\n }\n function baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n }\n function baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n }\n function baseAssignValue(object, key, value) {\n if (key == \"__proto__\" && defineProperty) {\n defineProperty(object, key, {\n \"configurable\": true,\n \"enumerable\": true,\n \"value\": value,\n \"writable\": true\n });\n } else {\n object[key] = value;\n }\n }\n function baseAt(object, paths) {\n var index = -1, length = paths.length, result2 = Array2(length), skip = object == null;\n while (++index < length) {\n result2[index] = skip ? undefined2 : get(object, paths[index]);\n }\n return result2;\n }\n function baseClamp(number, lower, upper) {\n if (number === number) {\n if (upper !== undefined2) {\n number = number <= upper ? number : upper;\n }\n if (lower !== undefined2) {\n number = number >= lower ? number : lower;\n }\n }\n return number;\n }\n function baseClone(value, bitmask, customizer, key, object, stack) {\n var result2, isDeep = bitmask & CLONE_DEEP_FLAG, isFlat = bitmask & CLONE_FLAT_FLAG, isFull = bitmask & CLONE_SYMBOLS_FLAG;\n if (customizer) {\n result2 = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result2 !== undefined2) {\n return result2;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result2 = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result2);\n }\n } else {\n var tag = getTag(value), isFunc = tag == funcTag || tag == genTag;\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || isFunc && !object) {\n result2 = isFlat || isFunc ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat ? copySymbolsIn(value, baseAssignIn(result2, value)) : copySymbols(value, baseAssign(result2, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result2 = initCloneByTag(value, tag, isDeep);\n }\n }\n stack || (stack = new Stack());\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result2);\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result2.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key2) {\n result2.set(key2, baseClone(subValue, bitmask, customizer, key2, value, stack));\n });\n }\n var keysFunc = isFull ? isFlat ? getAllKeysIn : getAllKeys : isFlat ? keysIn : keys;\n var props = isArr ? undefined2 : keysFunc(value);\n arrayEach(props || value, function(subValue, key2) {\n if (props) {\n key2 = subValue;\n subValue = value[key2];\n }\n assignValue(result2, key2, baseClone(subValue, bitmask, customizer, key2, value, stack));\n });\n return result2;\n }\n function baseConforms(source) {\n var props = keys(source);\n return function(object) {\n return baseConformsTo(object, source, props);\n };\n }\n function baseConformsTo(object, source, props) {\n var length = props.length;\n if (object == null) {\n return !length;\n }\n object = Object2(object);\n while (length--) {\n var key = props[length], predicate = source[key], value = object[key];\n if (value === undefined2 && !(key in object) || !predicate(value)) {\n return false;\n }\n }\n return true;\n }\n function baseDelay(func, wait, args) {\n if (typeof func != \"function\") {\n throw new TypeError2(FUNC_ERROR_TEXT);\n }\n return setTimeout2(function() {\n func.apply(undefined2, args);\n }, wait);\n }\n function baseDifference(array, values2, iteratee2, comparator) {\n var index = -1, includes2 = arrayIncludes, isCommon = true, length = array.length, result2 = [], valuesLength = values2.length;\n if (!length) {\n return result2;\n }\n if (iteratee2) {\n values2 = arrayMap(values2, baseUnary(iteratee2));\n }\n if (comparator) {\n includes2 = arrayIncludesWith;\n isCommon = false;\n } else if (values2.length >= LARGE_ARRAY_SIZE) {\n includes2 = cacheHas;\n isCommon = false;\n values2 = new SetCache(values2);\n }\n outer:\n while (++index < length) {\n var value = array[index], computed = iteratee2 == null ? value : iteratee2(value);\n value = comparator || value !== 0 ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values2[valuesIndex] === computed) {\n continue outer;\n }\n }\n result2.push(value);\n } else if (!includes2(values2, computed, comparator)) {\n result2.push(value);\n }\n }\n return result2;\n }\n var baseEach = createBaseEach(baseForOwn);\n var baseEachRight = createBaseEach(baseForOwnRight, true);\n function baseEvery(collection, predicate) {\n var result2 = true;\n baseEach(collection, function(value, index, collection2) {\n result2 = !!predicate(value, index, collection2);\n return result2;\n });\n return result2;\n }\n function baseExtremum(array, iteratee2, comparator) {\n var index = -1, length = array.length;\n while (++index < length) {\n var value = array[index], current = iteratee2(value);\n if (current != null && (computed === undefined2 ? current === current && !isSymbol(current) : comparator(current, computed))) {\n var computed = current, result2 = value;\n }\n }\n return result2;\n }\n function baseFill(array, value, start, end) {\n var length = array.length;\n start = toInteger(start);\n if (start < 0) {\n start = -start > length ? 0 : length + start;\n }\n end = end === undefined2 || end > length ? length : toInteger(end);\n if (end < 0) {\n end += length;\n }\n end = start > end ? 0 : toLength(end);\n while (start < end) {\n array[start++] = value;\n }\n return array;\n }\n function baseFilter(collection, predicate) {\n var result2 = [];\n baseEach(collection, function(value, index, collection2) {\n if (predicate(value, index, collection2)) {\n result2.push(value);\n }\n });\n return result2;\n }\n function baseFlatten(array, depth, predicate, isStrict, result2) {\n var index = -1, length = array.length;\n predicate || (predicate = isFlattenable);\n result2 || (result2 = []);\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n baseFlatten(value, depth - 1, predicate, isStrict, result2);\n } else {\n arrayPush(result2, value);\n }\n } else if (!isStrict) {\n result2[result2.length] = value;\n }\n }\n return result2;\n }\n var baseFor = createBaseFor();\n var baseForRight = createBaseFor(true);\n function baseForOwn(object, iteratee2) {\n return object && baseFor(object, iteratee2, keys);\n }\n function baseForOwnRight(object, iteratee2) {\n return object && baseForRight(object, iteratee2, keys);\n }\n function baseFunctions(object, props) {\n return arrayFilter(props, function(key) {\n return isFunction(object[key]);\n });\n }\n function baseGet(object, path) {\n path = castPath(path, object);\n var index = 0, length = path.length;\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return index && index == length ? object : undefined2;\n }\n function baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result2 = keysFunc(object);\n return isArray(object) ? result2 : arrayPush(result2, symbolsFunc(object));\n }\n function baseGetTag(value) {\n if (value == null) {\n return value === undefined2 ? undefinedTag : nullTag;\n }\n return symToStringTag && symToStringTag in Object2(value) ? getRawTag(value) : objectToString(value);\n }\n function baseGt(value, other) {\n return value > other;\n }\n function baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n }\n function baseHasIn(object, key) {\n return object != null && key in Object2(object);\n }\n function baseInRange(number, start, end) {\n return number >= nativeMin(start, end) && number < nativeMax(start, end);\n }\n function baseIntersection(arrays, iteratee2, comparator) {\n var includes2 = comparator ? arrayIncludesWith : arrayIncludes, length = arrays[0].length, othLength = arrays.length, othIndex = othLength, caches = Array2(othLength), maxLength = Infinity, result2 = [];\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee2) {\n array = arrayMap(array, baseUnary(iteratee2));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee2 || length >= 120 && array.length >= 120) ? new SetCache(othIndex && array) : undefined2;\n }\n array = arrays[0];\n var index = -1, seen = caches[0];\n outer:\n while (++index < length && result2.length < maxLength) {\n var value = array[index], computed = iteratee2 ? iteratee2(value) : value;\n value = comparator || value !== 0 ? value : 0;\n if (!(seen ? cacheHas(seen, computed) : includes2(result2, computed, comparator))) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache ? cacheHas(cache, computed) : includes2(arrays[othIndex], computed, comparator))) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result2.push(value);\n }\n }\n return result2;\n }\n function baseInverter(object, setter, iteratee2, accumulator) {\n baseForOwn(object, function(value, key, object2) {\n setter(accumulator, iteratee2(value), key, object2);\n });\n return accumulator;\n }\n function baseInvoke(object, path, args) {\n path = castPath(path, object);\n object = parent(object, path);\n var func = object == null ? object : object[toKey(last(path))];\n return func == null ? undefined2 : apply(func, object, args);\n }\n function baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n }\n function baseIsArrayBuffer(value) {\n return isObjectLike(value) && baseGetTag(value) == arrayBufferTag;\n }\n function baseIsDate(value) {\n return isObjectLike(value) && baseGetTag(value) == dateTag;\n }\n function baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || !isObjectLike(value) && !isObjectLike(other)) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n }\n function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object), othIsArr = isArray(other), objTag = objIsArr ? arrayTag : getTag(object), othTag = othIsArr ? arrayTag : getTag(other);\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n var objIsObj = objTag == objectTag, othIsObj = othTag == objectTag, isSameTag = objTag == othTag;\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack());\n return objIsArr || isTypedArray(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, \"__wrapped__\"), othIsWrapped = othIsObj && hasOwnProperty.call(other, \"__wrapped__\");\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object, othUnwrapped = othIsWrapped ? other.value() : other;\n stack || (stack = new Stack());\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack());\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n }\n function baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n }\n function baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length, length = index, noCustomizer = !customizer;\n if (object == null) {\n return !length;\n }\n object = Object2(object);\n while (index--) {\n var data = matchData[index];\n if (noCustomizer && data[2] ? data[1] !== object[data[0]] : !(data[0] in object)) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0], objValue = object[key], srcValue = data[1];\n if (noCustomizer && data[2]) {\n if (objValue === undefined2 && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack();\n if (customizer) {\n var result2 = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result2 === undefined2 ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) : result2)) {\n return false;\n }\n }\n }\n return true;\n }\n function baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n }\n function baseIsRegExp(value) {\n return isObjectLike(value) && baseGetTag(value) == regexpTag;\n }\n function baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n }\n function baseIsTypedArray(value) {\n return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n }\n function baseIteratee(value) {\n if (typeof value == \"function\") {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == \"object\") {\n return isArray(value) ? baseMatchesProperty(value[0], value[1]) : baseMatches(value);\n }\n return property(value);\n }\n function baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result2 = [];\n for (var key in Object2(object)) {\n if (hasOwnProperty.call(object, key) && key != \"constructor\") {\n result2.push(key);\n }\n }\n return result2;\n }\n function baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object), result2 = [];\n for (var key in object) {\n if (!(key == \"constructor\" && (isProto || !hasOwnProperty.call(object, key)))) {\n result2.push(key);\n }\n }\n return result2;\n }\n function baseLt(value, other) {\n return value < other;\n }\n function baseMap(collection, iteratee2) {\n var index = -1, result2 = isArrayLike(collection) ? Array2(collection.length) : [];\n baseEach(collection, function(value, key, collection2) {\n result2[++index] = iteratee2(value, key, collection2);\n });\n return result2;\n }\n function baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n }\n function baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return objValue === undefined2 && objValue === srcValue ? hasIn(object, path) : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n }\n function baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack());\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n } else {\n var newValue = customizer ? customizer(safeGet(object, key), srcValue, key + \"\", object, source, stack) : undefined2;\n if (newValue === undefined2) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n }\n function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key), srcValue = safeGet(source, key), stacked = stack.get(srcValue);\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer ? customizer(objValue, srcValue, key + \"\", object, source, stack) : undefined2;\n var isCommon = newValue === undefined2;\n if (isCommon) {\n var isArr = isArray(srcValue), isBuff = !isArr && isBuffer(srcValue), isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n } else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n } else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n } else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n } else {\n newValue = [];\n }\n } else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n } else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n } else {\n isCommon = false;\n }\n }\n if (isCommon) {\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack[\"delete\"](srcValue);\n }\n assignMergeValue(object, key, newValue);\n }\n function baseNth(array, n) {\n var length = array.length;\n if (!length) {\n return;\n }\n n += n < 0 ? length : 0;\n return isIndex(n, length) ? array[n] : undefined2;\n }\n function baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee2) {\n if (isArray(iteratee2)) {\n return function(value) {\n return baseGet(value, iteratee2.length === 1 ? iteratee2[0] : iteratee2);\n };\n }\n return iteratee2;\n });\n } else {\n iteratees = [identity];\n }\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n var result2 = baseMap(collection, function(value, key, collection2) {\n var criteria = arrayMap(iteratees, function(iteratee2) {\n return iteratee2(value);\n });\n return { \"criteria\": criteria, \"index\": ++index, \"value\": value };\n });\n return baseSortBy(result2, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n }\n function basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n }\n function basePickBy(object, paths, predicate) {\n var index = -1, length = paths.length, result2 = {};\n while (++index < length) {\n var path = paths[index], value = baseGet(object, path);\n if (predicate(value, path)) {\n baseSet(result2, castPath(path, object), value);\n }\n }\n return result2;\n }\n function basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n }\n function basePullAll(array, values2, iteratee2, comparator) {\n var indexOf2 = comparator ? baseIndexOfWith : baseIndexOf, index = -1, length = values2.length, seen = array;\n if (array === values2) {\n values2 = copyArray(values2);\n }\n if (iteratee2) {\n seen = arrayMap(array, baseUnary(iteratee2));\n }\n while (++index < length) {\n var fromIndex = 0, value = values2[index], computed = iteratee2 ? iteratee2(value) : value;\n while ((fromIndex = indexOf2(seen, computed, fromIndex, comparator)) > -1) {\n if (seen !== array) {\n splice.call(seen, fromIndex, 1);\n }\n splice.call(array, fromIndex, 1);\n }\n }\n return array;\n }\n function basePullAt(array, indexes) {\n var length = array ? indexes.length : 0, lastIndex = length - 1;\n while (length--) {\n var index = indexes[length];\n if (length == lastIndex || index !== previous) {\n var previous = index;\n if (isIndex(index)) {\n splice.call(array, index, 1);\n } else {\n baseUnset(array, index);\n }\n }\n }\n return array;\n }\n function baseRandom(lower, upper) {\n return lower + nativeFloor(nativeRandom() * (upper - lower + 1));\n }\n function baseRange(start, end, step, fromRight) {\n var index = -1, length = nativeMax(nativeCeil((end - start) / (step || 1)), 0), result2 = Array2(length);\n while (length--) {\n result2[fromRight ? length : ++index] = start;\n start += step;\n }\n return result2;\n }\n function baseRepeat(string, n) {\n var result2 = \"\";\n if (!string || n < 1 || n > MAX_SAFE_INTEGER) {\n return result2;\n }\n do {\n if (n % 2) {\n result2 += string;\n }\n n = nativeFloor(n / 2);\n if (n) {\n string += string;\n }\n } while (n);\n return result2;\n }\n function baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + \"\");\n }\n function baseSample(collection) {\n return arraySample(values(collection));\n }\n function baseSampleSize(collection, n) {\n var array = values(collection);\n return shuffleSelf(array, baseClamp(n, 0, array.length));\n }\n function baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n var index = -1, length = path.length, lastIndex = length - 1, nested = object;\n while (nested != null && ++index < length) {\n var key = toKey(path[index]), newValue = value;\n if (key === \"__proto__\" || key === \"constructor\" || key === \"prototype\") {\n return object;\n }\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined2;\n if (newValue === undefined2) {\n newValue = isObject(objValue) ? objValue : isIndex(path[index + 1]) ? [] : {};\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n }\n var baseSetData = !metaMap ? identity : function(func, data) {\n metaMap.set(func, data);\n return func;\n };\n var baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, \"toString\", {\n \"configurable\": true,\n \"enumerable\": false,\n \"value\": constant(string),\n \"writable\": true\n });\n };\n function baseShuffle(collection) {\n return shuffleSelf(values(collection));\n }\n function baseSlice(array, start, end) {\n var index = -1, length = array.length;\n if (start < 0) {\n start = -start > length ? 0 : length + start;\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : end - start >>> 0;\n start >>>= 0;\n var result2 = Array2(length);\n while (++index < length) {\n result2[index] = array[index + start];\n }\n return result2;\n }\n function baseSome(collection, predicate) {\n var result2;\n baseEach(collection, function(value, index, collection2) {\n result2 = predicate(value, index, collection2);\n return !result2;\n });\n return !!result2;\n }\n function baseSortedIndex(array, value, retHighest) {\n var low = 0, high = array == null ? low : array.length;\n if (typeof value == \"number\" && value === value && high <= HALF_MAX_ARRAY_LENGTH) {\n while (low < high) {\n var mid = low + high >>> 1, computed = array[mid];\n if (computed !== null && !isSymbol(computed) && (retHighest ? computed <= value : computed < value)) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return high;\n }\n return baseSortedIndexBy(array, value, identity, retHighest);\n }\n function baseSortedIndexBy(array, value, iteratee2, retHighest) {\n var low = 0, high = array == null ? 0 : array.length;\n if (high === 0) {\n return 0;\n }\n value = iteratee2(value);\n var valIsNaN = value !== value, valIsNull = value === null, valIsSymbol = isSymbol(value), valIsUndefined = value === undefined2;\n while (low < high) {\n var mid = nativeFloor((low + high) / 2), computed = iteratee2(array[mid]), othIsDefined = computed !== undefined2, othIsNull = computed === null, othIsReflexive = computed === computed, othIsSymbol = isSymbol(computed);\n if (valIsNaN) {\n var setLow = retHighest || othIsReflexive;\n } else if (valIsUndefined) {\n setLow = othIsReflexive && (retHighest || othIsDefined);\n } else if (valIsNull) {\n setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);\n } else if (valIsSymbol) {\n setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);\n } else if (othIsNull || othIsSymbol) {\n setLow = false;\n } else {\n setLow = retHighest ? computed <= value : computed < value;\n }\n if (setLow) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return nativeMin(high, MAX_ARRAY_INDEX);\n }\n function baseSortedUniq(array, iteratee2) {\n var index = -1, length = array.length, resIndex = 0, result2 = [];\n while (++index < length) {\n var value = array[index], computed = iteratee2 ? iteratee2(value) : value;\n if (!index || !eq(computed, seen)) {\n var seen = computed;\n result2[resIndex++] = value === 0 ? 0 : value;\n }\n }\n return result2;\n }\n function baseToNumber(value) {\n if (typeof value == \"number\") {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n return +value;\n }\n function baseToString(value) {\n if (typeof value == \"string\") {\n return value;\n }\n if (isArray(value)) {\n return arrayMap(value, baseToString) + \"\";\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : \"\";\n }\n var result2 = value + \"\";\n return result2 == \"0\" && 1 / value == -INFINITY ? \"-0\" : result2;\n }\n function baseUniq(array, iteratee2, comparator) {\n var index = -1, includes2 = arrayIncludes, length = array.length, isCommon = true, result2 = [], seen = result2;\n if (comparator) {\n isCommon = false;\n includes2 = arrayIncludesWith;\n } else if (length >= LARGE_ARRAY_SIZE) {\n var set2 = iteratee2 ? null : createSet(array);\n if (set2) {\n return setToArray(set2);\n }\n isCommon = false;\n includes2 = cacheHas;\n seen = new SetCache();\n } else {\n seen = iteratee2 ? [] : result2;\n }\n outer:\n while (++index < length) {\n var value = array[index], computed = iteratee2 ? iteratee2(value) : value;\n value = comparator || value !== 0 ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee2) {\n seen.push(computed);\n }\n result2.push(value);\n } else if (!includes2(seen, computed, comparator)) {\n if (seen !== result2) {\n seen.push(computed);\n }\n result2.push(value);\n }\n }\n return result2;\n }\n function baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n }\n function baseUpdate(object, path, updater, customizer) {\n return baseSet(object, path, updater(baseGet(object, path)), customizer);\n }\n function baseWhile(array, predicate, isDrop, fromRight) {\n var length = array.length, index = fromRight ? length : -1;\n while ((fromRight ? index-- : ++index < length) && predicate(array[index], index, array)) {\n }\n return isDrop ? baseSlice(array, fromRight ? 0 : index, fromRight ? index + 1 : length) : baseSlice(array, fromRight ? index + 1 : 0, fromRight ? length : index);\n }\n function baseWrapperValue(value, actions) {\n var result2 = value;\n if (result2 instanceof LazyWrapper) {\n result2 = result2.value();\n }\n return arrayReduce(actions, function(result3, action) {\n return action.func.apply(action.thisArg, arrayPush([result3], action.args));\n }, result2);\n }\n function baseXor(arrays, iteratee2, comparator) {\n var length = arrays.length;\n if (length < 2) {\n return length ? baseUniq(arrays[0]) : [];\n }\n var index = -1, result2 = Array2(length);\n while (++index < length) {\n var array = arrays[index], othIndex = -1;\n while (++othIndex < length) {\n if (othIndex != index) {\n result2[index] = baseDifference(result2[index] || array, arrays[othIndex], iteratee2, comparator);\n }\n }\n }\n return baseUniq(baseFlatten(result2, 1), iteratee2, comparator);\n }\n function baseZipObject(props, values2, assignFunc) {\n var index = -1, length = props.length, valsLength = values2.length, result2 = {};\n while (++index < length) {\n var value = index < valsLength ? values2[index] : undefined2;\n assignFunc(result2, props[index], value);\n }\n return result2;\n }\n function castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n }\n function castFunction(value) {\n return typeof value == \"function\" ? value : identity;\n }\n function castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n }\n var castRest = baseRest;\n function castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined2 ? length : end;\n return !start && end >= length ? array : baseSlice(array, start, end);\n }\n var clearTimeout2 = ctxClearTimeout || function(id) {\n return root.clearTimeout(id);\n };\n function cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length, result2 = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n buffer.copy(result2);\n return result2;\n }\n function cloneArrayBuffer(arrayBuffer) {\n var result2 = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array2(result2).set(new Uint8Array2(arrayBuffer));\n return result2;\n }\n function cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n }\n function cloneRegExp(regexp) {\n var result2 = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result2.lastIndex = regexp.lastIndex;\n return result2;\n }\n function cloneSymbol(symbol) {\n return symbolValueOf ? Object2(symbolValueOf.call(symbol)) : {};\n }\n function cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n }\n function compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined2, valIsNull = value === null, valIsReflexive = value === value, valIsSymbol = isSymbol(value);\n var othIsDefined = other !== undefined2, othIsNull = other === null, othIsReflexive = other === other, othIsSymbol = isSymbol(other);\n if (!othIsNull && !othIsSymbol && !valIsSymbol && value > other || valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol || valIsNull && othIsDefined && othIsReflexive || !valIsDefined && othIsReflexive || !valIsReflexive) {\n return 1;\n }\n if (!valIsNull && !valIsSymbol && !othIsSymbol && value < other || othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol || othIsNull && valIsDefined && valIsReflexive || !othIsDefined && valIsReflexive || !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n }\n function compareMultiple(object, other, orders) {\n var index = -1, objCriteria = object.criteria, othCriteria = other.criteria, length = objCriteria.length, ordersLength = orders.length;\n while (++index < length) {\n var result2 = compareAscending(objCriteria[index], othCriteria[index]);\n if (result2) {\n if (index >= ordersLength) {\n return result2;\n }\n var order = orders[index];\n return result2 * (order == \"desc\" ? -1 : 1);\n }\n }\n return object.index - other.index;\n }\n function composeArgs(args, partials, holders, isCurried) {\n var argsIndex = -1, argsLength = args.length, holdersLength = holders.length, leftIndex = -1, leftLength = partials.length, rangeLength = nativeMax(argsLength - holdersLength, 0), result2 = Array2(leftLength + rangeLength), isUncurried = !isCurried;\n while (++leftIndex < leftLength) {\n result2[leftIndex] = partials[leftIndex];\n }\n while (++argsIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result2[holders[argsIndex]] = args[argsIndex];\n }\n }\n while (rangeLength--) {\n result2[leftIndex++] = args[argsIndex++];\n }\n return result2;\n }\n function composeArgsRight(args, partials, holders, isCurried) {\n var argsIndex = -1, argsLength = args.length, holdersIndex = -1, holdersLength = holders.length, rightIndex = -1, rightLength = partials.length, rangeLength = nativeMax(argsLength - holdersLength, 0), result2 = Array2(rangeLength + rightLength), isUncurried = !isCurried;\n while (++argsIndex < rangeLength) {\n result2[argsIndex] = args[argsIndex];\n }\n var offset = argsIndex;\n while (++rightIndex < rightLength) {\n result2[offset + rightIndex] = partials[rightIndex];\n }\n while (++holdersIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result2[offset + holders[holdersIndex]] = args[argsIndex++];\n }\n }\n return result2;\n }\n function copyArray(source, array) {\n var index = -1, length = source.length;\n array || (array = Array2(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n }\n function copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n var index = -1, length = props.length;\n while (++index < length) {\n var key = props[index];\n var newValue = customizer ? customizer(object[key], source[key], key, object, source) : undefined2;\n if (newValue === undefined2) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n }\n function copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n }\n function copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n }\n function createAggregator(setter, initializer) {\n return function(collection, iteratee2) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator, accumulator = initializer ? initializer() : {};\n return func(collection, setter, getIteratee(iteratee2, 2), accumulator);\n };\n }\n function createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1, length = sources.length, customizer = length > 1 ? sources[length - 1] : undefined2, guard = length > 2 ? sources[2] : undefined2;\n customizer = assigner.length > 3 && typeof customizer == \"function\" ? (length--, customizer) : undefined2;\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined2 : customizer;\n length = 1;\n }\n object = Object2(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n }\n function createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee2) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee2);\n }\n var length = collection.length, index = fromRight ? length : -1, iterable = Object2(collection);\n while (fromRight ? index-- : ++index < length) {\n if (iteratee2(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n }\n function createBaseFor(fromRight) {\n return function(object, iteratee2, keysFunc) {\n var index = -1, iterable = Object2(object), props = keysFunc(object), length = props.length;\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee2(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n }\n function createBind(func, bitmask, thisArg) {\n var isBind = bitmask & WRAP_BIND_FLAG, Ctor = createCtor(func);\n function wrapper() {\n var fn = this && this !== root && this instanceof wrapper ? Ctor : func;\n return fn.apply(isBind ? thisArg : this, arguments);\n }\n return wrapper;\n }\n function createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n var strSymbols = hasUnicode(string) ? stringToArray(string) : undefined2;\n var chr = strSymbols ? strSymbols[0] : string.charAt(0);\n var trailing = strSymbols ? castSlice(strSymbols, 1).join(\"\") : string.slice(1);\n return chr[methodName]() + trailing;\n };\n }\n function createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, \"\")), callback, \"\");\n };\n }\n function createCtor(Ctor) {\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0:\n return new Ctor();\n case 1:\n return new Ctor(args[0]);\n case 2:\n return new Ctor(args[0], args[1]);\n case 3:\n return new Ctor(args[0], args[1], args[2]);\n case 4:\n return new Ctor(args[0], args[1], args[2], args[3]);\n case 5:\n return new Ctor(args[0], args[1], args[2], args[3], args[4]);\n case 6:\n return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);\n case 7:\n return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);\n }\n var thisBinding = baseCreate(Ctor.prototype), result2 = Ctor.apply(thisBinding, args);\n return isObject(result2) ? result2 : thisBinding;\n };\n }\n function createCurry(func, bitmask, arity) {\n var Ctor = createCtor(func);\n function wrapper() {\n var length = arguments.length, args = Array2(length), index = length, placeholder = getHolder(wrapper);\n while (index--) {\n args[index] = arguments[index];\n }\n var holders = length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder ? [] : replaceHolders(args, placeholder);\n length -= holders.length;\n if (length < arity) {\n return createRecurry(\n func,\n bitmask,\n createHybrid,\n wrapper.placeholder,\n undefined2,\n args,\n holders,\n undefined2,\n undefined2,\n arity - length\n );\n }\n var fn = this && this !== root && this instanceof wrapper ? Ctor : func;\n return apply(fn, this, args);\n }\n return wrapper;\n }\n function createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object2(collection);\n if (!isArrayLike(collection)) {\n var iteratee2 = getIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) {\n return iteratee2(iterable[key], key, iterable);\n };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee2 ? collection[index] : index] : undefined2;\n };\n }\n function createFlow(fromRight) {\n return flatRest(function(funcs) {\n var length = funcs.length, index = length, prereq = LodashWrapper.prototype.thru;\n if (fromRight) {\n funcs.reverse();\n }\n while (index--) {\n var func = funcs[index];\n if (typeof func != \"function\") {\n throw new TypeError2(FUNC_ERROR_TEXT);\n }\n if (prereq && !wrapper && getFuncName(func) == \"wrapper\") {\n var wrapper = new LodashWrapper([], true);\n }\n }\n index = wrapper ? index : length;\n while (++index < length) {\n func = funcs[index];\n var funcName = getFuncName(func), data = funcName == \"wrapper\" ? getData2(func) : undefined2;\n if (data && isLaziable(data[0]) && data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) && !data[4].length && data[9] == 1) {\n wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);\n } else {\n wrapper = func.length == 1 && isLaziable(func) ? wrapper[funcName]() : wrapper.thru(func);\n }\n }\n return function() {\n var args = arguments, value = args[0];\n if (wrapper && args.length == 1 && isArray(value)) {\n return wrapper.plant(value).value();\n }\n var index2 = 0, result2 = length ? funcs[index2].apply(this, args) : value;\n while (++index2 < length) {\n result2 = funcs[index2].call(this, result2);\n }\n return result2;\n };\n });\n }\n function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary2, arity) {\n var isAry = bitmask & WRAP_ARY_FLAG, isBind = bitmask & WRAP_BIND_FLAG, isBindKey = bitmask & WRAP_BIND_KEY_FLAG, isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG), isFlip = bitmask & WRAP_FLIP_FLAG, Ctor = isBindKey ? undefined2 : createCtor(func);\n function wrapper() {\n var length = arguments.length, args = Array2(length), index = length;\n while (index--) {\n args[index] = arguments[index];\n }\n if (isCurried) {\n var placeholder = getHolder(wrapper), holdersCount = countHolders(args, placeholder);\n }\n if (partials) {\n args = composeArgs(args, partials, holders, isCurried);\n }\n if (partialsRight) {\n args = composeArgsRight(args, partialsRight, holdersRight, isCurried);\n }\n length -= holdersCount;\n if (isCurried && length < arity) {\n var newHolders = replaceHolders(args, placeholder);\n return createRecurry(\n func,\n bitmask,\n createHybrid,\n wrapper.placeholder,\n thisArg,\n args,\n newHolders,\n argPos,\n ary2,\n arity - length\n );\n }\n var thisBinding = isBind ? thisArg : this, fn = isBindKey ? thisBinding[func] : func;\n length = args.length;\n if (argPos) {\n args = reorder(args, argPos);\n } else if (isFlip && length > 1) {\n args.reverse();\n }\n if (isAry && ary2 < length) {\n args.length = ary2;\n }\n if (this && this !== root && this instanceof wrapper) {\n fn = Ctor || createCtor(fn);\n }\n return fn.apply(thisBinding, args);\n }\n return wrapper;\n }\n function createInverter(setter, toIteratee) {\n return function(object, iteratee2) {\n return baseInverter(object, setter, toIteratee(iteratee2), {});\n };\n }\n function createMathOperation(operator, defaultValue) {\n return function(value, other) {\n var result2;\n if (value === undefined2 && other === undefined2) {\n return defaultValue;\n }\n if (value !== undefined2) {\n result2 = value;\n }\n if (other !== undefined2) {\n if (result2 === undefined2) {\n return other;\n }\n if (typeof value == \"string\" || typeof other == \"string\") {\n value = baseToString(value);\n other = baseToString(other);\n } else {\n value = baseToNumber(value);\n other = baseToNumber(other);\n }\n result2 = operator(value, other);\n }\n return result2;\n };\n }\n function createOver(arrayFunc) {\n return flatRest(function(iteratees) {\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n return baseRest(function(args) {\n var thisArg = this;\n return arrayFunc(iteratees, function(iteratee2) {\n return apply(iteratee2, thisArg, args);\n });\n });\n });\n }\n function createPadding(length, chars) {\n chars = chars === undefined2 ? \" \" : baseToString(chars);\n var charsLength = chars.length;\n if (charsLength < 2) {\n return charsLength ? baseRepeat(chars, length) : chars;\n }\n var result2 = baseRepeat(chars, nativeCeil(length / stringSize(chars)));\n return hasUnicode(chars) ? castSlice(stringToArray(result2), 0, length).join(\"\") : result2.slice(0, length);\n }\n function createPartial(func, bitmask, thisArg, partials) {\n var isBind = bitmask & WRAP_BIND_FLAG, Ctor = createCtor(func);\n function wrapper() {\n var argsIndex = -1, argsLength = arguments.length, leftIndex = -1, leftLength = partials.length, args = Array2(leftLength + argsLength), fn = this && this !== root && this instanceof wrapper ? Ctor : func;\n while (++leftIndex < leftLength) {\n args[leftIndex] = partials[leftIndex];\n }\n while (argsLength--) {\n args[leftIndex++] = arguments[++argsIndex];\n }\n return apply(fn, isBind ? thisArg : this, args);\n }\n return wrapper;\n }\n function createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != \"number\" && isIterateeCall(start, end, step)) {\n end = step = undefined2;\n }\n start = toFinite(start);\n if (end === undefined2) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined2 ? start < end ? 1 : -1 : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n }\n function createRelationalOperation(operator) {\n return function(value, other) {\n if (!(typeof value == \"string\" && typeof other == \"string\")) {\n value = toNumber(value);\n other = toNumber(other);\n }\n return operator(value, other);\n };\n }\n function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary2, arity) {\n var isCurry = bitmask & WRAP_CURRY_FLAG, newHolders = isCurry ? holders : undefined2, newHoldersRight = isCurry ? undefined2 : holders, newPartials = isCurry ? partials : undefined2, newPartialsRight = isCurry ? undefined2 : partials;\n bitmask |= isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG;\n bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);\n if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {\n bitmask &= -4;\n }\n var newData = [\n func,\n bitmask,\n thisArg,\n newPartials,\n newHolders,\n newPartialsRight,\n newHoldersRight,\n argPos,\n ary2,\n arity\n ];\n var result2 = wrapFunc.apply(undefined2, newData);\n if (isLaziable(func)) {\n setData2(result2, newData);\n }\n result2.placeholder = placeholder;\n return setWrapToString(result2, func, bitmask);\n }\n function createRound(methodName) {\n var func = Math2[methodName];\n return function(number, precision) {\n number = toNumber(number);\n precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);\n if (precision && nativeIsFinite(number)) {\n var pair = (toString(number) + \"e\").split(\"e\"), value = func(pair[0] + \"e\" + (+pair[1] + precision));\n pair = (toString(value) + \"e\").split(\"e\");\n return +(pair[0] + \"e\" + (+pair[1] - precision));\n }\n return func(number);\n };\n }\n var createSet = !(Set2 && 1 / setToArray(new Set2([, -0]))[1] == INFINITY) ? noop2 : function(values2) {\n return new Set2(values2);\n };\n function createToPairs(keysFunc) {\n return function(object) {\n var tag = getTag(object);\n if (tag == mapTag) {\n return mapToArray(object);\n }\n if (tag == setTag) {\n return setToPairs(object);\n }\n return baseToPairs(object, keysFunc(object));\n };\n }\n function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary2, arity) {\n var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;\n if (!isBindKey && typeof func != \"function\") {\n throw new TypeError2(FUNC_ERROR_TEXT);\n }\n var length = partials ? partials.length : 0;\n if (!length) {\n bitmask &= -97;\n partials = holders = undefined2;\n }\n ary2 = ary2 === undefined2 ? ary2 : nativeMax(toInteger(ary2), 0);\n arity = arity === undefined2 ? arity : toInteger(arity);\n length -= holders ? holders.length : 0;\n if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {\n var partialsRight = partials, holdersRight = holders;\n partials = holders = undefined2;\n }\n var data = isBindKey ? undefined2 : getData2(func);\n var newData = [\n func,\n bitmask,\n thisArg,\n partials,\n holders,\n partialsRight,\n holdersRight,\n argPos,\n ary2,\n arity\n ];\n if (data) {\n mergeData(newData, data);\n }\n func = newData[0];\n bitmask = newData[1];\n thisArg = newData[2];\n partials = newData[3];\n holders = newData[4];\n arity = newData[9] = newData[9] === undefined2 ? isBindKey ? 0 : func.length : nativeMax(newData[9] - length, 0);\n if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {\n bitmask &= -25;\n }\n if (!bitmask || bitmask == WRAP_BIND_FLAG) {\n var result2 = createBind(func, bitmask, thisArg);\n } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {\n result2 = createCurry(func, bitmask, arity);\n } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {\n result2 = createPartial(func, bitmask, thisArg, partials);\n } else {\n result2 = createHybrid.apply(undefined2, newData);\n }\n var setter = data ? baseSetData : setData2;\n return setWrapToString(setter(result2, newData), func, bitmask);\n }\n function customDefaultsAssignIn(objValue, srcValue, key, object) {\n if (objValue === undefined2 || eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key)) {\n return srcValue;\n }\n return objValue;\n }\n function customDefaultsMerge(objValue, srcValue, key, object, source, stack) {\n if (isObject(objValue) && isObject(srcValue)) {\n stack.set(srcValue, objValue);\n baseMerge(objValue, srcValue, undefined2, customDefaultsMerge, stack);\n stack[\"delete\"](srcValue);\n }\n return objValue;\n }\n function customOmitClone(value) {\n return isPlainObject(value) ? undefined2 : value;\n }\n function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG, arrLength = array.length, othLength = other.length;\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1, result2 = true, seen = bitmask & COMPARE_UNORDERED_FLAG ? new SetCache() : undefined2;\n stack.set(array, other);\n stack.set(other, array);\n while (++index < arrLength) {\n var arrValue = array[index], othValue = other[index];\n if (customizer) {\n var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined2) {\n if (compared) {\n continue;\n }\n result2 = false;\n break;\n }\n if (seen) {\n if (!arraySome(other, function(othValue2, othIndex) {\n if (!cacheHas(seen, othIndex) && (arrValue === othValue2 || equalFunc(arrValue, othValue2, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result2 = false;\n break;\n }\n } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n result2 = false;\n break;\n }\n }\n stack[\"delete\"](array);\n stack[\"delete\"](other);\n return result2;\n }\n function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n case arrayBufferTag:\n if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array2(object), new Uint8Array2(other))) {\n return false;\n }\n return true;\n case boolTag:\n case dateTag:\n case numberTag:\n return eq(+object, +other);\n case errorTag:\n return object.name == other.name && object.message == other.message;\n case regexpTag:\n case stringTag:\n return object == other + \"\";\n case mapTag:\n var convert = mapToArray;\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n if (object.size != other.size && !isPartial) {\n return false;\n }\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n stack.set(object, other);\n var result2 = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack[\"delete\"](object);\n return result2;\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n }\n function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG, objProps = getAllKeys(object), objLength = objProps.length, othProps = getAllKeys(other), othLength = othProps.length;\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result2 = true;\n stack.set(object, other);\n stack.set(other, object);\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key], othValue = other[key];\n if (customizer) {\n var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack);\n }\n if (!(compared === undefined2 ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) {\n result2 = false;\n break;\n }\n skipCtor || (skipCtor = key == \"constructor\");\n }\n if (result2 && !skipCtor) {\n var objCtor = object.constructor, othCtor = other.constructor;\n if (objCtor != othCtor && (\"constructor\" in object && \"constructor\" in other) && !(typeof objCtor == \"function\" && objCtor instanceof objCtor && typeof othCtor == \"function\" && othCtor instanceof othCtor)) {\n result2 = false;\n }\n }\n stack[\"delete\"](object);\n stack[\"delete\"](other);\n return result2;\n }\n function flatRest(func) {\n return setToString(overRest(func, undefined2, flatten), func + \"\");\n }\n function getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n }\n function getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n }\n var getData2 = !metaMap ? noop2 : function(func) {\n return metaMap.get(func);\n };\n function getFuncName(func) {\n var result2 = func.name + \"\", array = realNames[result2], length = hasOwnProperty.call(realNames, result2) ? array.length : 0;\n while (length--) {\n var data = array[length], otherFunc = data.func;\n if (otherFunc == null || otherFunc == func) {\n return data.name;\n }\n }\n return result2;\n }\n function getHolder(func) {\n var object = hasOwnProperty.call(lodash, \"placeholder\") ? lodash : func;\n return object.placeholder;\n }\n function getIteratee() {\n var result2 = lodash.iteratee || iteratee;\n result2 = result2 === iteratee ? baseIteratee : result2;\n return arguments.length ? result2(arguments[0], arguments[1]) : result2;\n }\n function getMapData(map2, key) {\n var data = map2.__data__;\n return isKeyable(key) ? data[typeof key == \"string\" ? \"string\" : \"hash\"] : data.map;\n }\n function getMatchData(object) {\n var result2 = keys(object), length = result2.length;\n while (length--) {\n var key = result2[length], value = object[key];\n result2[length] = [key, value, isStrictComparable(value)];\n }\n return result2;\n }\n function getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined2;\n }\n function getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag];\n try {\n value[symToStringTag] = undefined2;\n var unmasked = true;\n } catch (e) {\n }\n var result2 = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result2;\n }\n var getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object2(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n };\n var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result2 = [];\n while (object) {\n arrayPush(result2, getSymbols(object));\n object = getPrototype(object);\n }\n return result2;\n };\n var getTag = baseGetTag;\n if (DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag || Map2 && getTag(new Map2()) != mapTag || Promise2 && getTag(Promise2.resolve()) != promiseTag || Set2 && getTag(new Set2()) != setTag || WeakMap && getTag(new WeakMap()) != weakMapTag) {\n getTag = function(value) {\n var result2 = baseGetTag(value), Ctor = result2 == objectTag ? value.constructor : undefined2, ctorString = Ctor ? toSource(Ctor) : \"\";\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString:\n return dataViewTag;\n case mapCtorString:\n return mapTag;\n case promiseCtorString:\n return promiseTag;\n case setCtorString:\n return setTag;\n case weakMapCtorString:\n return weakMapTag;\n }\n }\n return result2;\n };\n }\n function getView(start, end, transforms) {\n var index = -1, length = transforms.length;\n while (++index < length) {\n var data = transforms[index], size3 = data.size;\n switch (data.type) {\n case \"drop\":\n start += size3;\n break;\n case \"dropRight\":\n end -= size3;\n break;\n case \"take\":\n end = nativeMin(end, start + size3);\n break;\n case \"takeRight\":\n start = nativeMax(start, end - size3);\n break;\n }\n }\n return { \"start\": start, \"end\": end };\n }\n function getWrapDetails(source) {\n var match = source.match(reWrapDetails);\n return match ? match[1].split(reSplitDetails) : [];\n }\n function hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n var index = -1, length = path.length, result2 = false;\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result2 = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result2 || ++index != length) {\n return result2;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) && (isArray(object) || isArguments(object));\n }\n function initCloneArray(array) {\n var length = array.length, result2 = new array.constructor(length);\n if (length && typeof array[0] == \"string\" && hasOwnProperty.call(array, \"index\")) {\n result2.index = array.index;\n result2.input = array.input;\n }\n return result2;\n }\n function initCloneObject(object) {\n return typeof object.constructor == \"function\" && !isPrototype(object) ? baseCreate(getPrototype(object)) : {};\n }\n function initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n case dataViewTag:\n return cloneDataView(object, isDeep);\n case float32Tag:\n case float64Tag:\n case int8Tag:\n case int16Tag:\n case int32Tag:\n case uint8Tag:\n case uint8ClampedTag:\n case uint16Tag:\n case uint32Tag:\n return cloneTypedArray(object, isDeep);\n case mapTag:\n return new Ctor();\n case numberTag:\n case stringTag:\n return new Ctor(object);\n case regexpTag:\n return cloneRegExp(object);\n case setTag:\n return new Ctor();\n case symbolTag:\n return cloneSymbol(object);\n }\n }\n function insertWrapDetails(source, details) {\n var length = details.length;\n if (!length) {\n return source;\n }\n var lastIndex = length - 1;\n details[lastIndex] = (length > 1 ? \"& \" : \"\") + details[lastIndex];\n details = details.join(length > 2 ? \", \" : \" \");\n return source.replace(reWrapComment, \"{\\n/* [wrapped with \" + details + \"] */\\n\");\n }\n function isFlattenable(value) {\n return isArray(value) || isArguments(value) || !!(spreadableSymbol && value && value[spreadableSymbol]);\n }\n function isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length && (type == \"number\" || type != \"symbol\" && reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length);\n }\n function isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == \"number\" ? isArrayLike(object) && isIndex(index, object.length) : type == \"string\" && index in object) {\n return eq(object[index], value);\n }\n return false;\n }\n function isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == \"number\" || type == \"symbol\" || type == \"boolean\" || value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object2(object);\n }\n function isKeyable(value) {\n var type = typeof value;\n return type == \"string\" || type == \"number\" || type == \"symbol\" || type == \"boolean\" ? value !== \"__proto__\" : value === null;\n }\n function isLaziable(func) {\n var funcName = getFuncName(func), other = lodash[funcName];\n if (typeof other != \"function\" || !(funcName in LazyWrapper.prototype)) {\n return false;\n }\n if (func === other) {\n return true;\n }\n var data = getData2(other);\n return !!data && func === data[0];\n }\n function isMasked(func) {\n return !!maskSrcKey && maskSrcKey in func;\n }\n var isMaskable = coreJsData ? isFunction : stubFalse;\n function isPrototype(value) {\n var Ctor = value && value.constructor, proto = typeof Ctor == \"function\" && Ctor.prototype || objectProto;\n return value === proto;\n }\n function isStrictComparable(value) {\n return value === value && !isObject(value);\n }\n function matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue && (srcValue !== undefined2 || key in Object2(object));\n };\n }\n function memoizeCapped(func) {\n var result2 = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n var cache = result2.cache;\n return result2;\n }\n function mergeData(data, source) {\n var bitmask = data[1], srcBitmask = source[1], newBitmask = bitmask | srcBitmask, isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);\n var isCombo = srcBitmask == WRAP_ARY_FLAG && bitmask == WRAP_CURRY_FLAG || srcBitmask == WRAP_ARY_FLAG && bitmask == WRAP_REARG_FLAG && data[7].length <= source[8] || srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG) && source[7].length <= source[8] && bitmask == WRAP_CURRY_FLAG;\n if (!(isCommon || isCombo)) {\n return data;\n }\n if (srcBitmask & WRAP_BIND_FLAG) {\n data[2] = source[2];\n newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;\n }\n var value = source[3];\n if (value) {\n var partials = data[3];\n data[3] = partials ? composeArgs(partials, value, source[4]) : value;\n data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];\n }\n value = source[5];\n if (value) {\n partials = data[5];\n data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;\n data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];\n }\n value = source[7];\n if (value) {\n data[7] = value;\n }\n if (srcBitmask & WRAP_ARY_FLAG) {\n data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);\n }\n if (data[9] == null) {\n data[9] = source[9];\n }\n data[0] = source[0];\n data[1] = newBitmask;\n return data;\n }\n function nativeKeysIn(object) {\n var result2 = [];\n if (object != null) {\n for (var key in Object2(object)) {\n result2.push(key);\n }\n }\n return result2;\n }\n function objectToString(value) {\n return nativeObjectToString.call(value);\n }\n function overRest(func, start, transform2) {\n start = nativeMax(start === undefined2 ? func.length - 1 : start, 0);\n return function() {\n var args = arguments, index = -1, length = nativeMax(args.length - start, 0), array = Array2(length);\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array2(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform2(array);\n return apply(func, this, otherArgs);\n };\n }\n function parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n }\n function reorder(array, indexes) {\n var arrLength = array.length, length = nativeMin(indexes.length, arrLength), oldArray = copyArray(array);\n while (length--) {\n var index = indexes[length];\n array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined2;\n }\n return array;\n }\n function safeGet(object, key) {\n if (key === \"constructor\" && typeof object[key] === \"function\") {\n return;\n }\n if (key == \"__proto__\") {\n return;\n }\n return object[key];\n }\n var setData2 = shortOut(baseSetData);\n var setTimeout2 = ctxSetTimeout || function(func, wait) {\n return root.setTimeout(func, wait);\n };\n var setToString = shortOut(baseSetToString);\n function setWrapToString(wrapper, reference, bitmask) {\n var source = reference + \"\";\n return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));\n }\n function shortOut(func) {\n var count = 0, lastCalled = 0;\n return function() {\n var stamp = nativeNow(), remaining = HOT_SPAN - (stamp - lastCalled);\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined2, arguments);\n };\n }\n function shuffleSelf(array, size3) {\n var index = -1, length = array.length, lastIndex = length - 1;\n size3 = size3 === undefined2 ? length : size3;\n while (++index < size3) {\n var rand = baseRandom(index, lastIndex), value = array[rand];\n array[rand] = array[index];\n array[index] = value;\n }\n array.length = size3;\n return array;\n }\n var stringToPath = memoizeCapped(function(string) {\n var result2 = [];\n if (string.charCodeAt(0) === 46) {\n result2.push(\"\");\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result2.push(quote ? subString.replace(reEscapeChar, \"$1\") : number || match);\n });\n return result2;\n });\n function toKey(value) {\n if (typeof value == \"string\" || isSymbol(value)) {\n return value;\n }\n var result2 = value + \"\";\n return result2 == \"0\" && 1 / value == -INFINITY ? \"-0\" : result2;\n }\n function toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {\n }\n try {\n return func + \"\";\n } catch (e) {\n }\n }\n return \"\";\n }\n function updateWrapDetails(details, bitmask) {\n arrayEach(wrapFlags, function(pair) {\n var value = \"_.\" + pair[0];\n if (bitmask & pair[1] && !arrayIncludes(details, value)) {\n details.push(value);\n }\n });\n return details.sort();\n }\n function wrapperClone(wrapper) {\n if (wrapper instanceof LazyWrapper) {\n return wrapper.clone();\n }\n var result2 = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);\n result2.__actions__ = copyArray(wrapper.__actions__);\n result2.__index__ = wrapper.__index__;\n result2.__values__ = wrapper.__values__;\n return result2;\n }\n function chunk(array, size3, guard) {\n if (guard ? isIterateeCall(array, size3, guard) : size3 === undefined2) {\n size3 = 1;\n } else {\n size3 = nativeMax(toInteger(size3), 0);\n }\n var length = array == null ? 0 : array.length;\n if (!length || size3 < 1) {\n return [];\n }\n var index = 0, resIndex = 0, result2 = Array2(nativeCeil(length / size3));\n while (index < length) {\n result2[resIndex++] = baseSlice(array, index, index += size3);\n }\n return result2;\n }\n function compact(array) {\n var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result2 = [];\n while (++index < length) {\n var value = array[index];\n if (value) {\n result2[resIndex++] = value;\n }\n }\n return result2;\n }\n function concat() {\n var length = arguments.length;\n if (!length) {\n return [];\n }\n var args = Array2(length - 1), array = arguments[0], index = length;\n while (index--) {\n args[index - 1] = arguments[index];\n }\n return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));\n }\n var difference = baseRest(function(array, values2) {\n return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values2, 1, isArrayLikeObject, true)) : [];\n });\n var differenceBy = baseRest(function(array, values2) {\n var iteratee2 = last(values2);\n if (isArrayLikeObject(iteratee2)) {\n iteratee2 = undefined2;\n }\n return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values2, 1, isArrayLikeObject, true), getIteratee(iteratee2, 2)) : [];\n });\n var differenceWith = baseRest(function(array, values2) {\n var comparator = last(values2);\n if (isArrayLikeObject(comparator)) {\n comparator = undefined2;\n }\n return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values2, 1, isArrayLikeObject, true), undefined2, comparator) : [];\n });\n function drop(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = guard || n === undefined2 ? 1 : toInteger(n);\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n function dropRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = guard || n === undefined2 ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n function dropRightWhile(array, predicate) {\n return array && array.length ? baseWhile(array, getIteratee(predicate, 3), true, true) : [];\n }\n function dropWhile(array, predicate) {\n return array && array.length ? baseWhile(array, getIteratee(predicate, 3), true) : [];\n }\n function fill(array, value, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (start && typeof start != \"number\" && isIterateeCall(array, value, start)) {\n start = 0;\n end = length;\n }\n return baseFill(array, value, start, end);\n }\n function findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index);\n }\n function findLastIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length - 1;\n if (fromIndex !== undefined2) {\n index = toInteger(fromIndex);\n index = fromIndex < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index, true);\n }\n function flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n }\n function flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n }\n function flattenDepth(array, depth) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n depth = depth === undefined2 ? 1 : toInteger(depth);\n return baseFlatten(array, depth);\n }\n function fromPairs(pairs) {\n var index = -1, length = pairs == null ? 0 : pairs.length, result2 = {};\n while (++index < length) {\n var pair = pairs[index];\n result2[pair[0]] = pair[1];\n }\n return result2;\n }\n function head(array) {\n return array && array.length ? array[0] : undefined2;\n }\n function indexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseIndexOf(array, value, index);\n }\n function initial(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 0, -1) : [];\n }\n var intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped) : [];\n });\n var intersectionBy = baseRest(function(arrays) {\n var iteratee2 = last(arrays), mapped = arrayMap(arrays, castArrayLikeObject);\n if (iteratee2 === last(mapped)) {\n iteratee2 = undefined2;\n } else {\n mapped.pop();\n }\n return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped, getIteratee(iteratee2, 2)) : [];\n });\n var intersectionWith = baseRest(function(arrays) {\n var comparator = last(arrays), mapped = arrayMap(arrays, castArrayLikeObject);\n comparator = typeof comparator == \"function\" ? comparator : undefined2;\n if (comparator) {\n mapped.pop();\n }\n return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped, undefined2, comparator) : [];\n });\n function join(array, separator) {\n return array == null ? \"\" : nativeJoin.call(array, separator);\n }\n function last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined2;\n }\n function lastIndexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length;\n if (fromIndex !== undefined2) {\n index = toInteger(fromIndex);\n index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);\n }\n return value === value ? strictLastIndexOf(array, value, index) : baseFindIndex(array, baseIsNaN, index, true);\n }\n function nth(array, n) {\n return array && array.length ? baseNth(array, toInteger(n)) : undefined2;\n }\n var pull = baseRest(pullAll);\n function pullAll(array, values2) {\n return array && array.length && values2 && values2.length ? basePullAll(array, values2) : array;\n }\n function pullAllBy(array, values2, iteratee2) {\n return array && array.length && values2 && values2.length ? basePullAll(array, values2, getIteratee(iteratee2, 2)) : array;\n }\n function pullAllWith(array, values2, comparator) {\n return array && array.length && values2 && values2.length ? basePullAll(array, values2, undefined2, comparator) : array;\n }\n var pullAt = flatRest(function(array, indexes) {\n var length = array == null ? 0 : array.length, result2 = baseAt(array, indexes);\n basePullAt(array, arrayMap(indexes, function(index) {\n return isIndex(index, length) ? +index : index;\n }).sort(compareAscending));\n return result2;\n });\n function remove(array, predicate) {\n var result2 = [];\n if (!(array && array.length)) {\n return result2;\n }\n var index = -1, indexes = [], length = array.length;\n predicate = getIteratee(predicate, 3);\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result2.push(value);\n indexes.push(index);\n }\n }\n basePullAt(array, indexes);\n return result2;\n }\n function reverse(array) {\n return array == null ? array : nativeReverse.call(array);\n }\n function slice(array, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (end && typeof end != \"number\" && isIterateeCall(array, start, end)) {\n start = 0;\n end = length;\n } else {\n start = start == null ? 0 : toInteger(start);\n end = end === undefined2 ? length : toInteger(end);\n }\n return baseSlice(array, start, end);\n }\n function sortedIndex(array, value) {\n return baseSortedIndex(array, value);\n }\n function sortedIndexBy(array, value, iteratee2) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee2, 2));\n }\n function sortedIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value);\n if (index < length && eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n function sortedLastIndex(array, value) {\n return baseSortedIndex(array, value, true);\n }\n function sortedLastIndexBy(array, value, iteratee2) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee2, 2), true);\n }\n function sortedLastIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value, true) - 1;\n if (eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n function sortedUniq(array) {\n return array && array.length ? baseSortedUniq(array) : [];\n }\n function sortedUniqBy(array, iteratee2) {\n return array && array.length ? baseSortedUniq(array, getIteratee(iteratee2, 2)) : [];\n }\n function tail(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 1, length) : [];\n }\n function take(array, n, guard) {\n if (!(array && array.length)) {\n return [];\n }\n n = guard || n === undefined2 ? 1 : toInteger(n);\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n function takeRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = guard || n === undefined2 ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n function takeRightWhile(array, predicate) {\n return array && array.length ? baseWhile(array, getIteratee(predicate, 3), false, true) : [];\n }\n function takeWhile(array, predicate) {\n return array && array.length ? baseWhile(array, getIteratee(predicate, 3)) : [];\n }\n var union = baseRest(function(arrays) {\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n });\n var unionBy = baseRest(function(arrays) {\n var iteratee2 = last(arrays);\n if (isArrayLikeObject(iteratee2)) {\n iteratee2 = undefined2;\n }\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee2, 2));\n });\n var unionWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == \"function\" ? comparator : undefined2;\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined2, comparator);\n });\n function uniq(array) {\n return array && array.length ? baseUniq(array) : [];\n }\n function uniqBy(array, iteratee2) {\n return array && array.length ? baseUniq(array, getIteratee(iteratee2, 2)) : [];\n }\n function uniqWith(array, comparator) {\n comparator = typeof comparator == \"function\" ? comparator : undefined2;\n return array && array.length ? baseUniq(array, undefined2, comparator) : [];\n }\n function unzip(array) {\n if (!(array && array.length)) {\n return [];\n }\n var length = 0;\n array = arrayFilter(array, function(group) {\n if (isArrayLikeObject(group)) {\n length = nativeMax(group.length, length);\n return true;\n }\n });\n return baseTimes(length, function(index) {\n return arrayMap(array, baseProperty(index));\n });\n }\n function unzipWith(array, iteratee2) {\n if (!(array && array.length)) {\n return [];\n }\n var result2 = unzip(array);\n if (iteratee2 == null) {\n return result2;\n }\n return arrayMap(result2, function(group) {\n return apply(iteratee2, undefined2, group);\n });\n }\n var without = baseRest(function(array, values2) {\n return isArrayLikeObject(array) ? baseDifference(array, values2) : [];\n });\n var xor = baseRest(function(arrays) {\n return baseXor(arrayFilter(arrays, isArrayLikeObject));\n });\n var xorBy = baseRest(function(arrays) {\n var iteratee2 = last(arrays);\n if (isArrayLikeObject(iteratee2)) {\n iteratee2 = undefined2;\n }\n return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee2, 2));\n });\n var xorWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == \"function\" ? comparator : undefined2;\n return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined2, comparator);\n });\n var zip = baseRest(unzip);\n function zipObject(props, values2) {\n return baseZipObject(props || [], values2 || [], assignValue);\n }\n function zipObjectDeep(props, values2) {\n return baseZipObject(props || [], values2 || [], baseSet);\n }\n var zipWith = baseRest(function(arrays) {\n var length = arrays.length, iteratee2 = length > 1 ? arrays[length - 1] : undefined2;\n iteratee2 = typeof iteratee2 == \"function\" ? (arrays.pop(), iteratee2) : undefined2;\n return unzipWith(arrays, iteratee2);\n });\n function chain(value) {\n var result2 = lodash(value);\n result2.__chain__ = true;\n return result2;\n }\n function tap(value, interceptor) {\n interceptor(value);\n return value;\n }\n function thru(value, interceptor) {\n return interceptor(value);\n }\n var wrapperAt = flatRest(function(paths) {\n var length = paths.length, start = length ? paths[0] : 0, value = this.__wrapped__, interceptor = function(object) {\n return baseAt(object, paths);\n };\n if (length > 1 || this.__actions__.length || !(value instanceof LazyWrapper) || !isIndex(start)) {\n return this.thru(interceptor);\n }\n value = value.slice(start, +start + (length ? 1 : 0));\n value.__actions__.push({\n \"func\": thru,\n \"args\": [interceptor],\n \"thisArg\": undefined2\n });\n return new LodashWrapper(value, this.__chain__).thru(function(array) {\n if (length && !array.length) {\n array.push(undefined2);\n }\n return array;\n });\n });\n function wrapperChain() {\n return chain(this);\n }\n function wrapperCommit() {\n return new LodashWrapper(this.value(), this.__chain__);\n }\n function wrapperNext() {\n if (this.__values__ === undefined2) {\n this.__values__ = toArray2(this.value());\n }\n var done = this.__index__ >= this.__values__.length, value = done ? undefined2 : this.__values__[this.__index__++];\n return { \"done\": done, \"value\": value };\n }\n function wrapperToIterator() {\n return this;\n }\n function wrapperPlant(value) {\n var result2, parent2 = this;\n while (parent2 instanceof baseLodash) {\n var clone2 = wrapperClone(parent2);\n clone2.__index__ = 0;\n clone2.__values__ = undefined2;\n if (result2) {\n previous.__wrapped__ = clone2;\n } else {\n result2 = clone2;\n }\n var previous = clone2;\n parent2 = parent2.__wrapped__;\n }\n previous.__wrapped__ = value;\n return result2;\n }\n function wrapperReverse() {\n var value = this.__wrapped__;\n if (value instanceof LazyWrapper) {\n var wrapped = value;\n if (this.__actions__.length) {\n wrapped = new LazyWrapper(this);\n }\n wrapped = wrapped.reverse();\n wrapped.__actions__.push({\n \"func\": thru,\n \"args\": [reverse],\n \"thisArg\": undefined2\n });\n return new LodashWrapper(wrapped, this.__chain__);\n }\n return this.thru(reverse);\n }\n function wrapperValue() {\n return baseWrapperValue(this.__wrapped__, this.__actions__);\n }\n var countBy = createAggregator(function(result2, value, key) {\n if (hasOwnProperty.call(result2, key)) {\n ++result2[key];\n } else {\n baseAssignValue(result2, key, 1);\n }\n });\n function every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined2;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n function filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, getIteratee(predicate, 3));\n }\n var find = createFind(findIndex);\n var findLast = createFind(findLastIndex);\n function flatMap(collection, iteratee2) {\n return baseFlatten(map(collection, iteratee2), 1);\n }\n function flatMapDeep(collection, iteratee2) {\n return baseFlatten(map(collection, iteratee2), INFINITY);\n }\n function flatMapDepth(collection, iteratee2, depth) {\n depth = depth === undefined2 ? 1 : toInteger(depth);\n return baseFlatten(map(collection, iteratee2), depth);\n }\n function forEach(collection, iteratee2) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, getIteratee(iteratee2, 3));\n }\n function forEachRight(collection, iteratee2) {\n var func = isArray(collection) ? arrayEachRight : baseEachRight;\n return func(collection, getIteratee(iteratee2, 3));\n }\n var groupBy = createAggregator(function(result2, value, key) {\n if (hasOwnProperty.call(result2, key)) {\n result2[key].push(value);\n } else {\n baseAssignValue(result2, key, [value]);\n }\n });\n function includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = fromIndex && !guard ? toInteger(fromIndex) : 0;\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection) ? fromIndex <= length && collection.indexOf(value, fromIndex) > -1 : !!length && baseIndexOf(collection, value, fromIndex) > -1;\n }\n var invokeMap = baseRest(function(collection, path, args) {\n var index = -1, isFunc = typeof path == \"function\", result2 = isArrayLike(collection) ? Array2(collection.length) : [];\n baseEach(collection, function(value) {\n result2[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args);\n });\n return result2;\n });\n var keyBy = createAggregator(function(result2, value, key) {\n baseAssignValue(result2, key, value);\n });\n function map(collection, iteratee2) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, getIteratee(iteratee2, 3));\n }\n function orderBy(collection, iteratees, orders, guard) {\n if (collection == null) {\n return [];\n }\n if (!isArray(iteratees)) {\n iteratees = iteratees == null ? [] : [iteratees];\n }\n orders = guard ? undefined2 : orders;\n if (!isArray(orders)) {\n orders = orders == null ? [] : [orders];\n }\n return baseOrderBy(collection, iteratees, orders);\n }\n var partition = createAggregator(function(result2, value, key) {\n result2[key ? 0 : 1].push(value);\n }, function() {\n return [[], []];\n });\n function reduce(collection, iteratee2, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce, initAccum = arguments.length < 3;\n return func(collection, getIteratee(iteratee2, 4), accumulator, initAccum, baseEach);\n }\n function reduceRight(collection, iteratee2, accumulator) {\n var func = isArray(collection) ? arrayReduceRight : baseReduce, initAccum = arguments.length < 3;\n return func(collection, getIteratee(iteratee2, 4), accumulator, initAccum, baseEachRight);\n }\n function reject(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, negate(getIteratee(predicate, 3)));\n }\n function sample(collection) {\n var func = isArray(collection) ? arraySample : baseSample;\n return func(collection);\n }\n function sampleSize(collection, n, guard) {\n if (guard ? isIterateeCall(collection, n, guard) : n === undefined2) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n var func = isArray(collection) ? arraySampleSize : baseSampleSize;\n return func(collection, n);\n }\n function shuffle(collection) {\n var func = isArray(collection) ? arrayShuffle : baseShuffle;\n return func(collection);\n }\n function size(collection) {\n if (collection == null) {\n return 0;\n }\n if (isArrayLike(collection)) {\n return isString(collection) ? stringSize(collection) : collection.length;\n }\n var tag = getTag(collection);\n if (tag == mapTag || tag == setTag) {\n return collection.size;\n }\n return baseKeys(collection).length;\n }\n function some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined2;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n var sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n });\n var now = ctxNow || function() {\n return root.Date.now();\n };\n function after(n, func) {\n if (typeof func != \"function\") {\n throw new TypeError2(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n < 1) {\n return func.apply(this, arguments);\n }\n };\n }\n function ary(func, n, guard) {\n n = guard ? undefined2 : n;\n n = func && n == null ? func.length : n;\n return createWrap(func, WRAP_ARY_FLAG, undefined2, undefined2, undefined2, undefined2, n);\n }\n function before(n, func) {\n var result2;\n if (typeof func != \"function\") {\n throw new TypeError2(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n > 0) {\n result2 = func.apply(this, arguments);\n }\n if (n <= 1) {\n func = undefined2;\n }\n return result2;\n };\n }\n var bind = baseRest(function(func, thisArg, partials) {\n var bitmask = WRAP_BIND_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bind));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(func, bitmask, thisArg, partials, holders);\n });\n var bindKey = baseRest(function(object, key, partials) {\n var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bindKey));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(key, bitmask, object, partials, holders);\n });\n function curry(func, arity, guard) {\n arity = guard ? undefined2 : arity;\n var result2 = createWrap(func, WRAP_CURRY_FLAG, undefined2, undefined2, undefined2, undefined2, undefined2, arity);\n result2.placeholder = curry.placeholder;\n return result2;\n }\n function curryRight(func, arity, guard) {\n arity = guard ? undefined2 : arity;\n var result2 = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined2, undefined2, undefined2, undefined2, undefined2, arity);\n result2.placeholder = curryRight.placeholder;\n return result2;\n }\n function debounce3(func, wait, options) {\n var lastArgs, lastThis, maxWait, result2, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true;\n if (typeof func != \"function\") {\n throw new TypeError2(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = \"maxWait\" in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = \"trailing\" in options ? !!options.trailing : trailing;\n }\n function invokeFunc(time) {\n var args = lastArgs, thisArg = lastThis;\n lastArgs = lastThis = undefined2;\n lastInvokeTime = time;\n result2 = func.apply(thisArg, args);\n return result2;\n }\n function leadingEdge(time) {\n lastInvokeTime = time;\n timerId = setTimeout2(timerExpired, wait);\n return leading ? invokeFunc(time) : result2;\n }\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, timeWaiting = wait - timeSinceLastCall;\n return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;\n }\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime;\n return lastCallTime === undefined2 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n }\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n timerId = setTimeout2(timerExpired, remainingWait(time));\n }\n function trailingEdge(time) {\n timerId = undefined2;\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined2;\n return result2;\n }\n function cancel() {\n if (timerId !== undefined2) {\n clearTimeout2(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined2;\n }\n function flush() {\n return timerId === undefined2 ? result2 : trailingEdge(now());\n }\n function debounced() {\n var time = now(), isInvoking = shouldInvoke(time);\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n if (isInvoking) {\n if (timerId === undefined2) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n clearTimeout2(timerId);\n timerId = setTimeout2(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined2) {\n timerId = setTimeout2(timerExpired, wait);\n }\n return result2;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n }\n var defer = baseRest(function(func, args) {\n return baseDelay(func, 1, args);\n });\n var delay = baseRest(function(func, wait, args) {\n return baseDelay(func, toNumber(wait) || 0, args);\n });\n function flip(func) {\n return createWrap(func, WRAP_FLIP_FLAG);\n }\n function memoize(func, resolver) {\n if (typeof func != \"function\" || resolver != null && typeof resolver != \"function\") {\n throw new TypeError2(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments, key = resolver ? resolver.apply(this, args) : args[0], cache = memoized.cache;\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result2 = func.apply(this, args);\n memoized.cache = cache.set(key, result2) || cache;\n return result2;\n };\n memoized.cache = new (memoize.Cache || MapCache)();\n return memoized;\n }\n memoize.Cache = MapCache;\n function negate(predicate) {\n if (typeof predicate != \"function\") {\n throw new TypeError2(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0:\n return !predicate.call(this);\n case 1:\n return !predicate.call(this, args[0]);\n case 2:\n return !predicate.call(this, args[0], args[1]);\n case 3:\n return !predicate.call(this, args[0], args[1], args[2]);\n }\n return !predicate.apply(this, args);\n };\n }\n function once(func) {\n return before(2, func);\n }\n var overArgs = castRest(function(func, transforms) {\n transforms = transforms.length == 1 && isArray(transforms[0]) ? arrayMap(transforms[0], baseUnary(getIteratee())) : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee()));\n var funcsLength = transforms.length;\n return baseRest(function(args) {\n var index = -1, length = nativeMin(args.length, funcsLength);\n while (++index < length) {\n args[index] = transforms[index].call(this, args[index]);\n }\n return apply(func, this, args);\n });\n });\n var partial = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partial));\n return createWrap(func, WRAP_PARTIAL_FLAG, undefined2, partials, holders);\n });\n var partialRight = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partialRight));\n return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined2, partials, holders);\n });\n var rearg = flatRest(function(func, indexes) {\n return createWrap(func, WRAP_REARG_FLAG, undefined2, undefined2, undefined2, indexes);\n });\n function rest(func, start) {\n if (typeof func != \"function\") {\n throw new TypeError2(FUNC_ERROR_TEXT);\n }\n start = start === undefined2 ? start : toInteger(start);\n return baseRest(func, start);\n }\n function spread(func, start) {\n if (typeof func != \"function\") {\n throw new TypeError2(FUNC_ERROR_TEXT);\n }\n start = start == null ? 0 : nativeMax(toInteger(start), 0);\n return baseRest(function(args) {\n var array = args[start], otherArgs = castSlice(args, 0, start);\n if (array) {\n arrayPush(otherArgs, array);\n }\n return apply(func, this, otherArgs);\n });\n }\n function throttle(func, wait, options) {\n var leading = true, trailing = true;\n if (typeof func != \"function\") {\n throw new TypeError2(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = \"leading\" in options ? !!options.leading : leading;\n trailing = \"trailing\" in options ? !!options.trailing : trailing;\n }\n return debounce3(func, wait, {\n \"leading\": leading,\n \"maxWait\": wait,\n \"trailing\": trailing\n });\n }\n function unary(func) {\n return ary(func, 1);\n }\n function wrap(value, wrapper) {\n return partial(castFunction(wrapper), value);\n }\n function castArray() {\n if (!arguments.length) {\n return [];\n }\n var value = arguments[0];\n return isArray(value) ? value : [value];\n }\n function clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n }\n function cloneWith(value, customizer) {\n customizer = typeof customizer == \"function\" ? customizer : undefined2;\n return baseClone(value, CLONE_SYMBOLS_FLAG, customizer);\n }\n function cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n }\n function cloneDeepWith(value, customizer) {\n customizer = typeof customizer == \"function\" ? customizer : undefined2;\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);\n }\n function conformsTo(object, source) {\n return source == null || baseConformsTo(object, source, keys(source));\n }\n function eq(value, other) {\n return value === other || value !== value && other !== other;\n }\n var gt = createRelationalOperation(baseGt);\n var gte = createRelationalOperation(function(value, other) {\n return value >= other;\n });\n var isArguments = baseIsArguments(/* @__PURE__ */ function() {\n return arguments;\n }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, \"callee\") && !propertyIsEnumerable.call(value, \"callee\");\n };\n var isArray = Array2.isArray;\n var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer;\n function isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n }\n function isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n }\n function isBoolean(value) {\n return value === true || value === false || isObjectLike(value) && baseGetTag(value) == boolTag;\n }\n var isBuffer = nativeIsBuffer || stubFalse;\n var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;\n function isElement(value) {\n return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n }\n function isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) && (isArray(value) || typeof value == \"string\" || typeof value.splice == \"function\" || isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n }\n function isEqual(value, other) {\n return baseIsEqual(value, other);\n }\n function isEqualWith(value, other, customizer) {\n customizer = typeof customizer == \"function\" ? customizer : undefined2;\n var result2 = customizer ? customizer(value, other) : undefined2;\n return result2 === undefined2 ? baseIsEqual(value, other, undefined2, customizer) : !!result2;\n }\n function isError(value) {\n if (!isObjectLike(value)) {\n return false;\n }\n var tag = baseGetTag(value);\n return tag == errorTag || tag == domExcTag || typeof value.message == \"string\" && typeof value.name == \"string\" && !isPlainObject(value);\n }\n function isFinite(value) {\n return typeof value == \"number\" && nativeIsFinite(value);\n }\n function isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n }\n function isInteger(value) {\n return typeof value == \"number\" && value == toInteger(value);\n }\n function isLength(value) {\n return typeof value == \"number\" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n }\n function isObject(value) {\n var type = typeof value;\n return value != null && (type == \"object\" || type == \"function\");\n }\n function isObjectLike(value) {\n return value != null && typeof value == \"object\";\n }\n var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n function isMatch(object, source) {\n return object === source || baseIsMatch(object, source, getMatchData(source));\n }\n function isMatchWith(object, source, customizer) {\n customizer = typeof customizer == \"function\" ? customizer : undefined2;\n return baseIsMatch(object, source, getMatchData(source), customizer);\n }\n function isNaN(value) {\n return isNumber2(value) && value != +value;\n }\n function isNative(value) {\n if (isMaskable(value)) {\n throw new Error2(CORE_ERROR_TEXT);\n }\n return baseIsNative(value);\n }\n function isNull(value) {\n return value === null;\n }\n function isNil(value) {\n return value == null;\n }\n function isNumber2(value) {\n return typeof value == \"number\" || isObjectLike(value) && baseGetTag(value) == numberTag;\n }\n function isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n return typeof Ctor == \"function\" && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString;\n }\n var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n function isSafeInteger(value) {\n return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;\n }\n var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n function isString(value) {\n return typeof value == \"string\" || !isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag;\n }\n function isSymbol(value) {\n return typeof value == \"symbol\" || isObjectLike(value) && baseGetTag(value) == symbolTag;\n }\n var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n function isUndefined(value) {\n return value === undefined2;\n }\n function isWeakMap(value) {\n return isObjectLike(value) && getTag(value) == weakMapTag;\n }\n function isWeakSet(value) {\n return isObjectLike(value) && baseGetTag(value) == weakSetTag;\n }\n var lt = createRelationalOperation(baseLt);\n var lte = createRelationalOperation(function(value, other) {\n return value <= other;\n });\n function toArray2(value) {\n if (!value) {\n return [];\n }\n if (isArrayLike(value)) {\n return isString(value) ? stringToArray(value) : copyArray(value);\n }\n if (symIterator && value[symIterator]) {\n return iteratorToArray(value[symIterator]());\n }\n var tag = getTag(value), func = tag == mapTag ? mapToArray : tag == setTag ? setToArray : values;\n return func(value);\n }\n function toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = value < 0 ? -1 : 1;\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n }\n function toInteger(value) {\n var result2 = toFinite(value), remainder = result2 % 1;\n return result2 === result2 ? remainder ? result2 - remainder : result2 : 0;\n }\n function toLength(value) {\n return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0;\n }\n function toNumber(value) {\n if (typeof value == \"number\") {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == \"function\" ? value.valueOf() : value;\n value = isObject(other) ? other + \"\" : other;\n }\n if (typeof value != \"string\") {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;\n }\n function toPlainObject(value) {\n return copyObject(value, keysIn(value));\n }\n function toSafeInteger(value) {\n return value ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER) : value === 0 ? value : 0;\n }\n function toString(value) {\n return value == null ? \"\" : baseToString(value);\n }\n var assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n });\n var assignIn = createAssigner(function(object, source) {\n copyObject(source, keysIn(source), object);\n });\n var assignInWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keysIn(source), object, customizer);\n });\n var assignWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keys(source), object, customizer);\n });\n var at = flatRest(baseAt);\n function create(prototype, properties) {\n var result2 = baseCreate(prototype);\n return properties == null ? result2 : baseAssign(result2, properties);\n }\n var defaults = baseRest(function(object, sources) {\n object = Object2(object);\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined2;\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n if (value === undefined2 || eq(value, objectProto[key]) && !hasOwnProperty.call(object, key)) {\n object[key] = source[key];\n }\n }\n }\n return object;\n });\n var defaultsDeep = baseRest(function(args) {\n args.push(undefined2, customDefaultsMerge);\n return apply(mergeWith, undefined2, args);\n });\n function findKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwn);\n }\n function findLastKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight);\n }\n function forIn(object, iteratee2) {\n return object == null ? object : baseFor(object, getIteratee(iteratee2, 3), keysIn);\n }\n function forInRight(object, iteratee2) {\n return object == null ? object : baseForRight(object, getIteratee(iteratee2, 3), keysIn);\n }\n function forOwn(object, iteratee2) {\n return object && baseForOwn(object, getIteratee(iteratee2, 3));\n }\n function forOwnRight(object, iteratee2) {\n return object && baseForOwnRight(object, getIteratee(iteratee2, 3));\n }\n function functions(object) {\n return object == null ? [] : baseFunctions(object, keys(object));\n }\n function functionsIn(object) {\n return object == null ? [] : baseFunctions(object, keysIn(object));\n }\n function get(object, path, defaultValue) {\n var result2 = object == null ? undefined2 : baseGet(object, path);\n return result2 === undefined2 ? defaultValue : result2;\n }\n function has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n }\n function hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n }\n var invert = createInverter(function(result2, value, key) {\n if (value != null && typeof value.toString != \"function\") {\n value = nativeObjectToString.call(value);\n }\n result2[value] = key;\n }, constant(identity));\n var invertBy = createInverter(function(result2, value, key) {\n if (value != null && typeof value.toString != \"function\") {\n value = nativeObjectToString.call(value);\n }\n if (hasOwnProperty.call(result2, value)) {\n result2[value].push(key);\n } else {\n result2[value] = [key];\n }\n }, getIteratee);\n var invoke = baseRest(baseInvoke);\n function keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n }\n function keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n }\n function mapKeys(object, iteratee2) {\n var result2 = {};\n iteratee2 = getIteratee(iteratee2, 3);\n baseForOwn(object, function(value, key, object2) {\n baseAssignValue(result2, iteratee2(value, key, object2), value);\n });\n return result2;\n }\n function mapValues(object, iteratee2) {\n var result2 = {};\n iteratee2 = getIteratee(iteratee2, 3);\n baseForOwn(object, function(value, key, object2) {\n baseAssignValue(result2, key, iteratee2(value, key, object2));\n });\n return result2;\n }\n var merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n });\n var mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n });\n var omit = flatRest(function(object, paths) {\n var result2 = {};\n if (object == null) {\n return result2;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result2);\n if (isDeep) {\n result2 = baseClone(result2, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result2, paths[length]);\n }\n return result2;\n });\n function omitBy(object, predicate) {\n return pickBy(object, negate(getIteratee(predicate)));\n }\n var pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n });\n function pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = getIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n }\n function result(object, path, defaultValue) {\n path = castPath(path, object);\n var index = -1, length = path.length;\n if (!length) {\n length = 1;\n object = undefined2;\n }\n while (++index < length) {\n var value = object == null ? undefined2 : object[toKey(path[index])];\n if (value === undefined2) {\n index = length;\n value = defaultValue;\n }\n object = isFunction(value) ? value.call(object) : value;\n }\n return object;\n }\n function set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n }\n function setWith(object, path, value, customizer) {\n customizer = typeof customizer == \"function\" ? customizer : undefined2;\n return object == null ? object : baseSet(object, path, value, customizer);\n }\n var toPairs = createToPairs(keys);\n var toPairsIn = createToPairs(keysIn);\n function transform(object, iteratee2, accumulator) {\n var isArr = isArray(object), isArrLike = isArr || isBuffer(object) || isTypedArray(object);\n iteratee2 = getIteratee(iteratee2, 4);\n if (accumulator == null) {\n var Ctor = object && object.constructor;\n if (isArrLike) {\n accumulator = isArr ? new Ctor() : [];\n } else if (isObject(object)) {\n accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};\n } else {\n accumulator = {};\n }\n }\n (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object2) {\n return iteratee2(accumulator, value, index, object2);\n });\n return accumulator;\n }\n function unset(object, path) {\n return object == null ? true : baseUnset(object, path);\n }\n function update(object, path, updater) {\n return object == null ? object : baseUpdate(object, path, castFunction(updater));\n }\n function updateWith(object, path, updater, customizer) {\n customizer = typeof customizer == \"function\" ? customizer : undefined2;\n return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer);\n }\n function values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n }\n function valuesIn(object) {\n return object == null ? [] : baseValues(object, keysIn(object));\n }\n function clamp(number, lower, upper) {\n if (upper === undefined2) {\n upper = lower;\n lower = undefined2;\n }\n if (upper !== undefined2) {\n upper = toNumber(upper);\n upper = upper === upper ? upper : 0;\n }\n if (lower !== undefined2) {\n lower = toNumber(lower);\n lower = lower === lower ? lower : 0;\n }\n return baseClamp(toNumber(number), lower, upper);\n }\n function inRange(number, start, end) {\n start = toFinite(start);\n if (end === undefined2) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n number = toNumber(number);\n return baseInRange(number, start, end);\n }\n function random(lower, upper, floating) {\n if (floating && typeof floating != \"boolean\" && isIterateeCall(lower, upper, floating)) {\n upper = floating = undefined2;\n }\n if (floating === undefined2) {\n if (typeof upper == \"boolean\") {\n floating = upper;\n upper = undefined2;\n } else if (typeof lower == \"boolean\") {\n floating = lower;\n lower = undefined2;\n }\n }\n if (lower === undefined2 && upper === undefined2) {\n lower = 0;\n upper = 1;\n } else {\n lower = toFinite(lower);\n if (upper === undefined2) {\n upper = lower;\n lower = 0;\n } else {\n upper = toFinite(upper);\n }\n }\n if (lower > upper) {\n var temp = lower;\n lower = upper;\n upper = temp;\n }\n if (floating || lower % 1 || upper % 1) {\n var rand = nativeRandom();\n return nativeMin(lower + rand * (upper - lower + freeParseFloat(\"1e-\" + ((rand + \"\").length - 1))), upper);\n }\n return baseRandom(lower, upper);\n }\n var camelCase = createCompounder(function(result2, word, index) {\n word = word.toLowerCase();\n return result2 + (index ? capitalize(word) : word);\n });\n function capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n }\n function deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, \"\");\n }\n function endsWith(string, target, position) {\n string = toString(string);\n target = baseToString(target);\n var length = string.length;\n position = position === undefined2 ? length : baseClamp(toInteger(position), 0, length);\n var end = position;\n position -= target.length;\n return position >= 0 && string.slice(position, end) == target;\n }\n function escape(string) {\n string = toString(string);\n return string && reHasUnescapedHtml.test(string) ? string.replace(reUnescapedHtml, escapeHtmlChar) : string;\n }\n function escapeRegExp(string) {\n string = toString(string);\n return string && reHasRegExpChar.test(string) ? string.replace(reRegExpChar, \"\\\\$&\") : string;\n }\n var kebabCase = createCompounder(function(result2, word, index) {\n return result2 + (index ? \"-\" : \"\") + word.toLowerCase();\n });\n var lowerCase = createCompounder(function(result2, word, index) {\n return result2 + (index ? \" \" : \"\") + word.toLowerCase();\n });\n var lowerFirst = createCaseFirst(\"toLowerCase\");\n function pad(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n var strLength = length ? stringSize(string) : 0;\n if (!length || strLength >= length) {\n return string;\n }\n var mid = (length - strLength) / 2;\n return createPadding(nativeFloor(mid), chars) + string + createPadding(nativeCeil(mid), chars);\n }\n function padEnd(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n var strLength = length ? stringSize(string) : 0;\n return length && strLength < length ? string + createPadding(length - strLength, chars) : string;\n }\n function padStart(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n var strLength = length ? stringSize(string) : 0;\n return length && strLength < length ? createPadding(length - strLength, chars) + string : string;\n }\n function parseInt2(string, radix, guard) {\n if (guard || radix == null) {\n radix = 0;\n } else if (radix) {\n radix = +radix;\n }\n return nativeParseInt(toString(string).replace(reTrimStart, \"\"), radix || 0);\n }\n function repeat(string, n, guard) {\n if (guard ? isIterateeCall(string, n, guard) : n === undefined2) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n return baseRepeat(toString(string), n);\n }\n function replace() {\n var args = arguments, string = toString(args[0]);\n return args.length < 3 ? string : string.replace(args[1], args[2]);\n }\n var snakeCase = createCompounder(function(result2, word, index) {\n return result2 + (index ? \"_\" : \"\") + word.toLowerCase();\n });\n function split(string, separator, limit) {\n if (limit && typeof limit != \"number\" && isIterateeCall(string, separator, limit)) {\n separator = limit = undefined2;\n }\n limit = limit === undefined2 ? MAX_ARRAY_LENGTH : limit >>> 0;\n if (!limit) {\n return [];\n }\n string = toString(string);\n if (string && (typeof separator == \"string\" || separator != null && !isRegExp(separator))) {\n separator = baseToString(separator);\n if (!separator && hasUnicode(string)) {\n return castSlice(stringToArray(string), 0, limit);\n }\n }\n return string.split(separator, limit);\n }\n var startCase = createCompounder(function(result2, word, index) {\n return result2 + (index ? \" \" : \"\") + upperFirst(word);\n });\n function startsWith(string, target, position) {\n string = toString(string);\n position = position == null ? 0 : baseClamp(toInteger(position), 0, string.length);\n target = baseToString(target);\n return string.slice(position, position + target.length) == target;\n }\n function template(string, options, guard) {\n var settings = lodash.templateSettings;\n if (guard && isIterateeCall(string, options, guard)) {\n options = undefined2;\n }\n string = toString(string);\n options = assignInWith({}, options, settings, customDefaultsAssignIn);\n var imports = assignInWith({}, options.imports, settings.imports, customDefaultsAssignIn), importsKeys = keys(imports), importsValues = baseValues(imports, importsKeys);\n var isEscaping, isEvaluating, index = 0, interpolate = options.interpolate || reNoMatch, source = \"__p += '\";\n var reDelimiters = RegExp2(\n (options.escape || reNoMatch).source + \"|\" + interpolate.source + \"|\" + (interpolate === reInterpolate ? reEsTemplate : reNoMatch).source + \"|\" + (options.evaluate || reNoMatch).source + \"|$\",\n \"g\"\n );\n var sourceURL = \"//# sourceURL=\" + (hasOwnProperty.call(options, \"sourceURL\") ? (options.sourceURL + \"\").replace(/\\s/g, \" \") : \"lodash.templateSources[\" + ++templateCounter + \"]\") + \"\\n\";\n string.replace(reDelimiters, function(match, escapeValue, interpolateValue, esTemplateValue, evaluateValue, offset) {\n interpolateValue || (interpolateValue = esTemplateValue);\n source += string.slice(index, offset).replace(reUnescapedString, escapeStringChar);\n if (escapeValue) {\n isEscaping = true;\n source += \"' +\\n__e(\" + escapeValue + \") +\\n'\";\n }\n if (evaluateValue) {\n isEvaluating = true;\n source += \"';\\n\" + evaluateValue + \";\\n__p += '\";\n }\n if (interpolateValue) {\n source += \"' +\\n((__t = (\" + interpolateValue + \")) == null ? '' : __t) +\\n'\";\n }\n index = offset + match.length;\n return match;\n });\n source += \"';\\n\";\n var variable = hasOwnProperty.call(options, \"variable\") && options.variable;\n if (!variable) {\n source = \"with (obj) {\\n\" + source + \"\\n}\\n\";\n } else if (reForbiddenIdentifierChars.test(variable)) {\n throw new Error2(INVALID_TEMPL_VAR_ERROR_TEXT);\n }\n source = (isEvaluating ? source.replace(reEmptyStringLeading, \"\") : source).replace(reEmptyStringMiddle, \"$1\").replace(reEmptyStringTrailing, \"$1;\");\n source = \"function(\" + (variable || \"obj\") + \") {\\n\" + (variable ? \"\" : \"obj || (obj = {});\\n\") + \"var __t, __p = ''\" + (isEscaping ? \", __e = _.escape\" : \"\") + (isEvaluating ? \", __j = Array.prototype.join;\\nfunction print() { __p += __j.call(arguments, '') }\\n\" : \";\\n\") + source + \"return __p\\n}\";\n var result2 = attempt(function() {\n return Function2(importsKeys, sourceURL + \"return \" + source).apply(undefined2, importsValues);\n });\n result2.source = source;\n if (isError(result2)) {\n throw result2;\n }\n return result2;\n }\n function toLower(value) {\n return toString(value).toLowerCase();\n }\n function toUpper(value) {\n return toString(value).toUpperCase();\n }\n function trim(string, chars, guard) {\n string = toString(string);\n if (string && (guard || chars === undefined2)) {\n return baseTrim(string);\n }\n if (!string || !(chars = baseToString(chars))) {\n return string;\n }\n var strSymbols = stringToArray(string), chrSymbols = stringToArray(chars), start = charsStartIndex(strSymbols, chrSymbols), end = charsEndIndex(strSymbols, chrSymbols) + 1;\n return castSlice(strSymbols, start, end).join(\"\");\n }\n function trimEnd(string, chars, guard) {\n string = toString(string);\n if (string && (guard || chars === undefined2)) {\n return string.slice(0, trimmedEndIndex(string) + 1);\n }\n if (!string || !(chars = baseToString(chars))) {\n return string;\n }\n var strSymbols = stringToArray(string), end = charsEndIndex(strSymbols, stringToArray(chars)) + 1;\n return castSlice(strSymbols, 0, end).join(\"\");\n }\n function trimStart(string, chars, guard) {\n string = toString(string);\n if (string && (guard || chars === undefined2)) {\n return string.replace(reTrimStart, \"\");\n }\n if (!string || !(chars = baseToString(chars))) {\n return string;\n }\n var strSymbols = stringToArray(string), start = charsStartIndex(strSymbols, stringToArray(chars));\n return castSlice(strSymbols, start).join(\"\");\n }\n function truncate(string, options) {\n var length = DEFAULT_TRUNC_LENGTH, omission = DEFAULT_TRUNC_OMISSION;\n if (isObject(options)) {\n var separator = \"separator\" in options ? options.separator : separator;\n length = \"length\" in options ? toInteger(options.length) : length;\n omission = \"omission\" in options ? baseToString(options.omission) : omission;\n }\n string = toString(string);\n var strLength = string.length;\n if (hasUnicode(string)) {\n var strSymbols = stringToArray(string);\n strLength = strSymbols.length;\n }\n if (length >= strLength) {\n return string;\n }\n var end = length - stringSize(omission);\n if (end < 1) {\n return omission;\n }\n var result2 = strSymbols ? castSlice(strSymbols, 0, end).join(\"\") : string.slice(0, end);\n if (separator === undefined2) {\n return result2 + omission;\n }\n if (strSymbols) {\n end += result2.length - end;\n }\n if (isRegExp(separator)) {\n if (string.slice(end).search(separator)) {\n var match, substring = result2;\n if (!separator.global) {\n separator = RegExp2(separator.source, toString(reFlags.exec(separator)) + \"g\");\n }\n separator.lastIndex = 0;\n while (match = separator.exec(substring)) {\n var newEnd = match.index;\n }\n result2 = result2.slice(0, newEnd === undefined2 ? end : newEnd);\n }\n } else if (string.indexOf(baseToString(separator), end) != end) {\n var index = result2.lastIndexOf(separator);\n if (index > -1) {\n result2 = result2.slice(0, index);\n }\n }\n return result2 + omission;\n }\n function unescape(string) {\n string = toString(string);\n return string && reHasEscapedHtml.test(string) ? string.replace(reEscapedHtml, unescapeHtmlChar) : string;\n }\n var upperCase = createCompounder(function(result2, word, index) {\n return result2 + (index ? \" \" : \"\") + word.toUpperCase();\n });\n var upperFirst = createCaseFirst(\"toUpperCase\");\n function words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined2 : pattern;\n if (pattern === undefined2) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n }\n var attempt = baseRest(function(func, args) {\n try {\n return apply(func, undefined2, args);\n } catch (e) {\n return isError(e) ? e : new Error2(e);\n }\n });\n var bindAll = flatRest(function(object, methodNames) {\n arrayEach(methodNames, function(key) {\n key = toKey(key);\n baseAssignValue(object, key, bind(object[key], object));\n });\n return object;\n });\n function cond(pairs) {\n var length = pairs == null ? 0 : pairs.length, toIteratee = getIteratee();\n pairs = !length ? [] : arrayMap(pairs, function(pair) {\n if (typeof pair[1] != \"function\") {\n throw new TypeError2(FUNC_ERROR_TEXT);\n }\n return [toIteratee(pair[0]), pair[1]];\n });\n return baseRest(function(args) {\n var index = -1;\n while (++index < length) {\n var pair = pairs[index];\n if (apply(pair[0], this, args)) {\n return apply(pair[1], this, args);\n }\n }\n });\n }\n function conforms(source) {\n return baseConforms(baseClone(source, CLONE_DEEP_FLAG));\n }\n function constant(value) {\n return function() {\n return value;\n };\n }\n function defaultTo(value, defaultValue) {\n return value == null || value !== value ? defaultValue : value;\n }\n var flow = createFlow();\n var flowRight = createFlow(true);\n function identity(value) {\n return value;\n }\n function iteratee(func) {\n return baseIteratee(typeof func == \"function\" ? func : baseClone(func, CLONE_DEEP_FLAG));\n }\n function matches(source) {\n return baseMatches(baseClone(source, CLONE_DEEP_FLAG));\n }\n function matchesProperty(path, srcValue) {\n return baseMatchesProperty(path, baseClone(srcValue, CLONE_DEEP_FLAG));\n }\n var method = baseRest(function(path, args) {\n return function(object) {\n return baseInvoke(object, path, args);\n };\n });\n var methodOf = baseRest(function(object, args) {\n return function(path) {\n return baseInvoke(object, path, args);\n };\n });\n function mixin(object, source, options) {\n var props = keys(source), methodNames = baseFunctions(source, props);\n if (options == null && !(isObject(source) && (methodNames.length || !props.length))) {\n options = source;\n source = object;\n object = this;\n methodNames = baseFunctions(source, keys(source));\n }\n var chain2 = !(isObject(options) && \"chain\" in options) || !!options.chain, isFunc = isFunction(object);\n arrayEach(methodNames, function(methodName) {\n var func = source[methodName];\n object[methodName] = func;\n if (isFunc) {\n object.prototype[methodName] = function() {\n var chainAll = this.__chain__;\n if (chain2 || chainAll) {\n var result2 = object(this.__wrapped__), actions = result2.__actions__ = copyArray(this.__actions__);\n actions.push({ \"func\": func, \"args\": arguments, \"thisArg\": object });\n result2.__chain__ = chainAll;\n return result2;\n }\n return func.apply(object, arrayPush([this.value()], arguments));\n };\n }\n });\n return object;\n }\n function noConflict() {\n if (root._ === this) {\n root._ = oldDash;\n }\n return this;\n }\n function noop2() {\n }\n function nthArg(n) {\n n = toInteger(n);\n return baseRest(function(args) {\n return baseNth(args, n);\n });\n }\n var over = createOver(arrayMap);\n var overEvery = createOver(arrayEvery);\n var overSome = createOver(arraySome);\n function property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n }\n function propertyOf(object) {\n return function(path) {\n return object == null ? undefined2 : baseGet(object, path);\n };\n }\n var range = createRange();\n var rangeRight = createRange(true);\n function stubArray() {\n return [];\n }\n function stubFalse() {\n return false;\n }\n function stubObject() {\n return {};\n }\n function stubString() {\n return \"\";\n }\n function stubTrue() {\n return true;\n }\n function times(n, iteratee2) {\n n = toInteger(n);\n if (n < 1 || n > MAX_SAFE_INTEGER) {\n return [];\n }\n var index = MAX_ARRAY_LENGTH, length = nativeMin(n, MAX_ARRAY_LENGTH);\n iteratee2 = getIteratee(iteratee2);\n n -= MAX_ARRAY_LENGTH;\n var result2 = baseTimes(length, iteratee2);\n while (++index < n) {\n iteratee2(index);\n }\n return result2;\n }\n function toPath(value) {\n if (isArray(value)) {\n return arrayMap(value, toKey);\n }\n return isSymbol(value) ? [value] : copyArray(stringToPath(toString(value)));\n }\n function uniqueId(prefix) {\n var id = ++idCounter;\n return toString(prefix) + id;\n }\n var add2 = createMathOperation(function(augend, addend) {\n return augend + addend;\n }, 0);\n var ceil = createRound(\"ceil\");\n var divide = createMathOperation(function(dividend, divisor) {\n return dividend / divisor;\n }, 1);\n var floor = createRound(\"floor\");\n function max(array) {\n return array && array.length ? baseExtremum(array, identity, baseGt) : undefined2;\n }\n function maxBy(array, iteratee2) {\n return array && array.length ? baseExtremum(array, getIteratee(iteratee2, 2), baseGt) : undefined2;\n }\n function mean(array) {\n return baseMean(array, identity);\n }\n function meanBy(array, iteratee2) {\n return baseMean(array, getIteratee(iteratee2, 2));\n }\n function min(array) {\n return array && array.length ? baseExtremum(array, identity, baseLt) : undefined2;\n }\n function minBy(array, iteratee2) {\n return array && array.length ? baseExtremum(array, getIteratee(iteratee2, 2), baseLt) : undefined2;\n }\n var multiply = createMathOperation(function(multiplier, multiplicand) {\n return multiplier * multiplicand;\n }, 1);\n var round = createRound(\"round\");\n var subtract = createMathOperation(function(minuend, subtrahend) {\n return minuend - subtrahend;\n }, 0);\n function sum(array) {\n return array && array.length ? baseSum(array, identity) : 0;\n }\n function sumBy(array, iteratee2) {\n return array && array.length ? baseSum(array, getIteratee(iteratee2, 2)) : 0;\n }\n lodash.after = after;\n lodash.ary = ary;\n lodash.assign = assign;\n lodash.assignIn = assignIn;\n lodash.assignInWith = assignInWith;\n lodash.assignWith = assignWith;\n lodash.at = at;\n lodash.before = before;\n lodash.bind = bind;\n lodash.bindAll = bindAll;\n lodash.bindKey = bindKey;\n lodash.castArray = castArray;\n lodash.chain = chain;\n lodash.chunk = chunk;\n lodash.compact = compact;\n lodash.concat = concat;\n lodash.cond = cond;\n lodash.conforms = conforms;\n lodash.constant = constant;\n lodash.countBy = countBy;\n lodash.create = create;\n lodash.curry = curry;\n lodash.curryRight = curryRight;\n lodash.debounce = debounce3;\n lodash.defaults = defaults;\n lodash.defaultsDeep = defaultsDeep;\n lodash.defer = defer;\n lodash.delay = delay;\n lodash.difference = difference;\n lodash.differenceBy = differenceBy;\n lodash.differenceWith = differenceWith;\n lodash.drop = drop;\n lodash.dropRight = dropRight;\n lodash.dropRightWhile = dropRightWhile;\n lodash.dropWhile = dropWhile;\n lodash.fill = fill;\n lodash.filter = filter;\n lodash.flatMap = flatMap;\n lodash.flatMapDeep = flatMapDeep;\n lodash.flatMapDepth = flatMapDepth;\n lodash.flatten = flatten;\n lodash.flattenDeep = flattenDeep;\n lodash.flattenDepth = flattenDepth;\n lodash.flip = flip;\n lodash.flow = flow;\n lodash.flowRight = flowRight;\n lodash.fromPairs = fromPairs;\n lodash.functions = functions;\n lodash.functionsIn = functionsIn;\n lodash.groupBy = groupBy;\n lodash.initial = initial;\n lodash.intersection = intersection;\n lodash.intersectionBy = intersectionBy;\n lodash.intersectionWith = intersectionWith;\n lodash.invert = invert;\n lodash.invertBy = invertBy;\n lodash.invokeMap = invokeMap;\n lodash.iteratee = iteratee;\n lodash.keyBy = keyBy;\n lodash.keys = keys;\n lodash.keysIn = keysIn;\n lodash.map = map;\n lodash.mapKeys = mapKeys;\n lodash.mapValues = mapValues;\n lodash.matches = matches;\n lodash.matchesProperty = matchesProperty;\n lodash.memoize = memoize;\n lodash.merge = merge;\n lodash.mergeWith = mergeWith;\n lodash.method = method;\n lodash.methodOf = methodOf;\n lodash.mixin = mixin;\n lodash.negate = negate;\n lodash.nthArg = nthArg;\n lodash.omit = omit;\n lodash.omitBy = omitBy;\n lodash.once = once;\n lodash.orderBy = orderBy;\n lodash.over = over;\n lodash.overArgs = overArgs;\n lodash.overEvery = overEvery;\n lodash.overSome = overSome;\n lodash.partial = partial;\n lodash.partialRight = partialRight;\n lodash.partition = partition;\n lodash.pick = pick;\n lodash.pickBy = pickBy;\n lodash.property = property;\n lodash.propertyOf = propertyOf;\n lodash.pull = pull;\n lodash.pullAll = pullAll;\n lodash.pullAllBy = pullAllBy;\n lodash.pullAllWith = pullAllWith;\n lodash.pullAt = pullAt;\n lodash.range = range;\n lodash.rangeRight = rangeRight;\n lodash.rearg = rearg;\n lodash.reject = reject;\n lodash.remove = remove;\n lodash.rest = rest;\n lodash.reverse = reverse;\n lodash.sampleSize = sampleSize;\n lodash.set = set;\n lodash.setWith = setWith;\n lodash.shuffle = shuffle;\n lodash.slice = slice;\n lodash.sortBy = sortBy;\n lodash.sortedUniq = sortedUniq;\n lodash.sortedUniqBy = sortedUniqBy;\n lodash.split = split;\n lodash.spread = spread;\n lodash.tail = tail;\n lodash.take = take;\n lodash.takeRight = takeRight;\n lodash.takeRightWhile = takeRightWhile;\n lodash.takeWhile = takeWhile;\n lodash.tap = tap;\n lodash.throttle = throttle;\n lodash.thru = thru;\n lodash.toArray = toArray2;\n lodash.toPairs = toPairs;\n lodash.toPairsIn = toPairsIn;\n lodash.toPath = toPath;\n lodash.toPlainObject = toPlainObject;\n lodash.transform = transform;\n lodash.unary = unary;\n lodash.union = union;\n lodash.unionBy = unionBy;\n lodash.unionWith = unionWith;\n lodash.uniq = uniq;\n lodash.uniqBy = uniqBy;\n lodash.uniqWith = uniqWith;\n lodash.unset = unset;\n lodash.unzip = unzip;\n lodash.unzipWith = unzipWith;\n lodash.update = update;\n lodash.updateWith = updateWith;\n lodash.values = values;\n lodash.valuesIn = valuesIn;\n lodash.without = without;\n lodash.words = words;\n lodash.wrap = wrap;\n lodash.xor = xor;\n lodash.xorBy = xorBy;\n lodash.xorWith = xorWith;\n lodash.zip = zip;\n lodash.zipObject = zipObject;\n lodash.zipObjectDeep = zipObjectDeep;\n lodash.zipWith = zipWith;\n lodash.entries = toPairs;\n lodash.entriesIn = toPairsIn;\n lodash.extend = assignIn;\n lodash.extendWith = assignInWith;\n mixin(lodash, lodash);\n lodash.add = add2;\n lodash.attempt = attempt;\n lodash.camelCase = camelCase;\n lodash.capitalize = capitalize;\n lodash.ceil = ceil;\n lodash.clamp = clamp;\n lodash.clone = clone;\n lodash.cloneDeep = cloneDeep;\n lodash.cloneDeepWith = cloneDeepWith;\n lodash.cloneWith = cloneWith;\n lodash.conformsTo = conformsTo;\n lodash.deburr = deburr;\n lodash.defaultTo = defaultTo;\n lodash.divide = divide;\n lodash.endsWith = endsWith;\n lodash.eq = eq;\n lodash.escape = escape;\n lodash.escapeRegExp = escapeRegExp;\n lodash.every = every;\n lodash.find = find;\n lodash.findIndex = findIndex;\n lodash.findKey = findKey;\n lodash.findLast = findLast;\n lodash.findLastIndex = findLastIndex;\n lodash.findLastKey = findLastKey;\n lodash.floor = floor;\n lodash.forEach = forEach;\n lodash.forEachRight = forEachRight;\n lodash.forIn = forIn;\n lodash.forInRight = forInRight;\n lodash.forOwn = forOwn;\n lodash.forOwnRight = forOwnRight;\n lodash.get = get;\n lodash.gt = gt;\n lodash.gte = gte;\n lodash.has = has;\n lodash.hasIn = hasIn;\n lodash.head = head;\n lodash.identity = identity;\n lodash.includes = includes;\n lodash.indexOf = indexOf;\n lodash.inRange = inRange;\n lodash.invoke = invoke;\n lodash.isArguments = isArguments;\n lodash.isArray = isArray;\n lodash.isArrayBuffer = isArrayBuffer;\n lodash.isArrayLike = isArrayLike;\n lodash.isArrayLikeObject = isArrayLikeObject;\n lodash.isBoolean = isBoolean;\n lodash.isBuffer = isBuffer;\n lodash.isDate = isDate;\n lodash.isElement = isElement;\n lodash.isEmpty = isEmpty;\n lodash.isEqual = isEqual;\n lodash.isEqualWith = isEqualWith;\n lodash.isError = isError;\n lodash.isFinite = isFinite;\n lodash.isFunction = isFunction;\n lodash.isInteger = isInteger;\n lodash.isLength = isLength;\n lodash.isMap = isMap;\n lodash.isMatch = isMatch;\n lodash.isMatchWith = isMatchWith;\n lodash.isNaN = isNaN;\n lodash.isNative = isNative;\n lodash.isNil = isNil;\n lodash.isNull = isNull;\n lodash.isNumber = isNumber2;\n lodash.isObject = isObject;\n lodash.isObjectLike = isObjectLike;\n lodash.isPlainObject = isPlainObject;\n lodash.isRegExp = isRegExp;\n lodash.isSafeInteger = isSafeInteger;\n lodash.isSet = isSet;\n lodash.isString = isString;\n lodash.isSymbol = isSymbol;\n lodash.isTypedArray = isTypedArray;\n lodash.isUndefined = isUndefined;\n lodash.isWeakMap = isWeakMap;\n lodash.isWeakSet = isWeakSet;\n lodash.join = join;\n lodash.kebabCase = kebabCase;\n lodash.last = last;\n lodash.lastIndexOf = lastIndexOf;\n lodash.lowerCase = lowerCase;\n lodash.lowerFirst = lowerFirst;\n lodash.lt = lt;\n lodash.lte = lte;\n lodash.max = max;\n lodash.maxBy = maxBy;\n lodash.mean = mean;\n lodash.meanBy = meanBy;\n lodash.min = min;\n lodash.minBy = minBy;\n lodash.stubArray = stubArray;\n lodash.stubFalse = stubFalse;\n lodash.stubObject = stubObject;\n lodash.stubString = stubString;\n lodash.stubTrue = stubTrue;\n lodash.multiply = multiply;\n lodash.nth = nth;\n lodash.noConflict = noConflict;\n lodash.noop = noop2;\n lodash.now = now;\n lodash.pad = pad;\n lodash.padEnd = padEnd;\n lodash.padStart = padStart;\n lodash.parseInt = parseInt2;\n lodash.random = random;\n lodash.reduce = reduce;\n lodash.reduceRight = reduceRight;\n lodash.repeat = repeat;\n lodash.replace = replace;\n lodash.result = result;\n lodash.round = round;\n lodash.runInContext = runInContext2;\n lodash.sample = sample;\n lodash.size = size;\n lodash.snakeCase = snakeCase;\n lodash.some = some;\n lodash.sortedIndex = sortedIndex;\n lodash.sortedIndexBy = sortedIndexBy;\n lodash.sortedIndexOf = sortedIndexOf;\n lodash.sortedLastIndex = sortedLastIndex;\n lodash.sortedLastIndexBy = sortedLastIndexBy;\n lodash.sortedLastIndexOf = sortedLastIndexOf;\n lodash.startCase = startCase;\n lodash.startsWith = startsWith;\n lodash.subtract = subtract;\n lodash.sum = sum;\n lodash.sumBy = sumBy;\n lodash.template = template;\n lodash.times = times;\n lodash.toFinite = toFinite;\n lodash.toInteger = toInteger;\n lodash.toLength = toLength;\n lodash.toLower = toLower;\n lodash.toNumber = toNumber;\n lodash.toSafeInteger = toSafeInteger;\n lodash.toString = toString;\n lodash.toUpper = toUpper;\n lodash.trim = trim;\n lodash.trimEnd = trimEnd;\n lodash.trimStart = trimStart;\n lodash.truncate = truncate;\n lodash.unescape = unescape;\n lodash.uniqueId = uniqueId;\n lodash.upperCase = upperCase;\n lodash.upperFirst = upperFirst;\n lodash.each = forEach;\n lodash.eachRight = forEachRight;\n lodash.first = head;\n mixin(lodash, function() {\n var source = {};\n baseForOwn(lodash, function(func, methodName) {\n if (!hasOwnProperty.call(lodash.prototype, methodName)) {\n source[methodName] = func;\n }\n });\n return source;\n }(), { \"chain\": false });\n lodash.VERSION = VERSION;\n arrayEach([\"bind\", \"bindKey\", \"curry\", \"curryRight\", \"partial\", \"partialRight\"], function(methodName) {\n lodash[methodName].placeholder = lodash;\n });\n arrayEach([\"drop\", \"take\"], function(methodName, index) {\n LazyWrapper.prototype[methodName] = function(n) {\n n = n === undefined2 ? 1 : nativeMax(toInteger(n), 0);\n var result2 = this.__filtered__ && !index ? new LazyWrapper(this) : this.clone();\n if (result2.__filtered__) {\n result2.__takeCount__ = nativeMin(n, result2.__takeCount__);\n } else {\n result2.__views__.push({\n \"size\": nativeMin(n, MAX_ARRAY_LENGTH),\n \"type\": methodName + (result2.__dir__ < 0 ? \"Right\" : \"\")\n });\n }\n return result2;\n };\n LazyWrapper.prototype[methodName + \"Right\"] = function(n) {\n return this.reverse()[methodName](n).reverse();\n };\n });\n arrayEach([\"filter\", \"map\", \"takeWhile\"], function(methodName, index) {\n var type = index + 1, isFilter = type == LAZY_FILTER_FLAG || type == LAZY_WHILE_FLAG;\n LazyWrapper.prototype[methodName] = function(iteratee2) {\n var result2 = this.clone();\n result2.__iteratees__.push({\n \"iteratee\": getIteratee(iteratee2, 3),\n \"type\": type\n });\n result2.__filtered__ = result2.__filtered__ || isFilter;\n return result2;\n };\n });\n arrayEach([\"head\", \"last\"], function(methodName, index) {\n var takeName = \"take\" + (index ? \"Right\" : \"\");\n LazyWrapper.prototype[methodName] = function() {\n return this[takeName](1).value()[0];\n };\n });\n arrayEach([\"initial\", \"tail\"], function(methodName, index) {\n var dropName = \"drop\" + (index ? \"\" : \"Right\");\n LazyWrapper.prototype[methodName] = function() {\n return this.__filtered__ ? new LazyWrapper(this) : this[dropName](1);\n };\n });\n LazyWrapper.prototype.compact = function() {\n return this.filter(identity);\n };\n LazyWrapper.prototype.find = function(predicate) {\n return this.filter(predicate).head();\n };\n LazyWrapper.prototype.findLast = function(predicate) {\n return this.reverse().find(predicate);\n };\n LazyWrapper.prototype.invokeMap = baseRest(function(path, args) {\n if (typeof path == \"function\") {\n return new LazyWrapper(this);\n }\n return this.map(function(value) {\n return baseInvoke(value, path, args);\n });\n });\n LazyWrapper.prototype.reject = function(predicate) {\n return this.filter(negate(getIteratee(predicate)));\n };\n LazyWrapper.prototype.slice = function(start, end) {\n start = toInteger(start);\n var result2 = this;\n if (result2.__filtered__ && (start > 0 || end < 0)) {\n return new LazyWrapper(result2);\n }\n if (start < 0) {\n result2 = result2.takeRight(-start);\n } else if (start) {\n result2 = result2.drop(start);\n }\n if (end !== undefined2) {\n end = toInteger(end);\n result2 = end < 0 ? result2.dropRight(-end) : result2.take(end - start);\n }\n return result2;\n };\n LazyWrapper.prototype.takeRightWhile = function(predicate) {\n return this.reverse().takeWhile(predicate).reverse();\n };\n LazyWrapper.prototype.toArray = function() {\n return this.take(MAX_ARRAY_LENGTH);\n };\n baseForOwn(LazyWrapper.prototype, function(func, methodName) {\n var checkIteratee = /^(?:filter|find|map|reject)|While$/.test(methodName), isTaker = /^(?:head|last)$/.test(methodName), lodashFunc = lodash[isTaker ? \"take\" + (methodName == \"last\" ? \"Right\" : \"\") : methodName], retUnwrapped = isTaker || /^find/.test(methodName);\n if (!lodashFunc) {\n return;\n }\n lodash.prototype[methodName] = function() {\n var value = this.__wrapped__, args = isTaker ? [1] : arguments, isLazy = value instanceof LazyWrapper, iteratee2 = args[0], useLazy = isLazy || isArray(value);\n var interceptor = function(value2) {\n var result3 = lodashFunc.apply(lodash, arrayPush([value2], args));\n return isTaker && chainAll ? result3[0] : result3;\n };\n if (useLazy && checkIteratee && typeof iteratee2 == \"function\" && iteratee2.length != 1) {\n isLazy = useLazy = false;\n }\n var chainAll = this.__chain__, isHybrid = !!this.__actions__.length, isUnwrapped = retUnwrapped && !chainAll, onlyLazy = isLazy && !isHybrid;\n if (!retUnwrapped && useLazy) {\n value = onlyLazy ? value : new LazyWrapper(this);\n var result2 = func.apply(value, args);\n result2.__actions__.push({ \"func\": thru, \"args\": [interceptor], \"thisArg\": undefined2 });\n return new LodashWrapper(result2, chainAll);\n }\n if (isUnwrapped && onlyLazy) {\n return func.apply(this, args);\n }\n result2 = this.thru(interceptor);\n return isUnwrapped ? isTaker ? result2.value()[0] : result2.value() : result2;\n };\n });\n arrayEach([\"pop\", \"push\", \"shift\", \"sort\", \"splice\", \"unshift\"], function(methodName) {\n var func = arrayProto[methodName], chainName = /^(?:push|sort|unshift)$/.test(methodName) ? \"tap\" : \"thru\", retUnwrapped = /^(?:pop|shift)$/.test(methodName);\n lodash.prototype[methodName] = function() {\n var args = arguments;\n if (retUnwrapped && !this.__chain__) {\n var value = this.value();\n return func.apply(isArray(value) ? value : [], args);\n }\n return this[chainName](function(value2) {\n return func.apply(isArray(value2) ? value2 : [], args);\n });\n };\n });\n baseForOwn(LazyWrapper.prototype, function(func, methodName) {\n var lodashFunc = lodash[methodName];\n if (lodashFunc) {\n var key = lodashFunc.name + \"\";\n if (!hasOwnProperty.call(realNames, key)) {\n realNames[key] = [];\n }\n realNames[key].push({ \"name\": methodName, \"func\": lodashFunc });\n }\n });\n realNames[createHybrid(undefined2, WRAP_BIND_KEY_FLAG).name] = [{\n \"name\": \"wrapper\",\n \"func\": undefined2\n }];\n LazyWrapper.prototype.clone = lazyClone;\n LazyWrapper.prototype.reverse = lazyReverse;\n LazyWrapper.prototype.value = lazyValue;\n lodash.prototype.at = wrapperAt;\n lodash.prototype.chain = wrapperChain;\n lodash.prototype.commit = wrapperCommit;\n lodash.prototype.next = wrapperNext;\n lodash.prototype.plant = wrapperPlant;\n lodash.prototype.reverse = wrapperReverse;\n lodash.prototype.toJSON = lodash.prototype.valueOf = lodash.prototype.value = wrapperValue;\n lodash.prototype.first = lodash.prototype.head;\n if (symIterator) {\n lodash.prototype[symIterator] = wrapperToIterator;\n }\n return lodash;\n };\n var _ = runInContext();\n if (typeof define == \"function\" && typeof define.amd == \"object\" && define.amd) {\n root._ = _;\n define(function() {\n return _;\n });\n } else if (freeModule) {\n (freeModule.exports = _)._ = _;\n freeExports._ = _;\n } else {\n root._ = _;\n }\n }).call(exports);\n }\n});\n\n// node_modules/.pnpm/@wopjs+disposable@0.1.19/node_modules/@wopjs/disposable/dist/index.mjs\nvar isFn = (value) => !!(value && value.constructor && value.call && value.apply);\nvar isDisposable = (value) => isFn(value) || isFn(value == null ? void 0 : value.dispose);\nfunction dispose(disposable) {\n try {\n if (disposable) {\n if (isFn(disposable.dispose)) {\n disposable.dispose();\n } else if (isFn(disposable)) {\n disposable();\n }\n }\n } catch (e) {\n console.error(e);\n }\n}\nvar isAbortable = (disposable) => isDisposable(disposable) && isFn(disposable.abortable);\nfunction disposableStore(disposables) {\n function disposableStore2() {\n var _a, _b;\n if (disposableStore2._i)\n return;\n disposableStore2._i = 1;\n (_a = disposableStore2._d) == null ? void 0 : _a.forEach(dispose);\n (_b = disposableStore2._d) == null ? void 0 : _b.clear();\n disposableStore2._i = 0;\n }\n disposableStore2._i = 0;\n disposableStore2.dispose = disposableStore2;\n disposableStore2.size = size2;\n disposableStore2.has = has2;\n disposableStore2.add = add;\n disposableStore2.make = make3;\n disposableStore2.remove = remove3;\n disposableStore2.flush = flush2;\n return disposableStore2;\n}\nfunction _addOne(disposable) {\n var _a, _b;\n if (!((_a = this._d) == null ? void 0 : _a.has(disposable))) {\n ((_b = this._d) != null ? _b : this._d = /* @__PURE__ */ new Set()).add(disposable);\n if (isAbortable(disposable)) {\n disposable.abortable(() => this.remove(disposable));\n }\n }\n}\nfunction add(disposables) {\n Array.isArray(disposables) ? disposables.forEach(_addOne, this) : _addOne.call(this, disposables);\n return disposables;\n}\nfunction flush2(disposable) {\n if (disposable) {\n if (this.remove(disposable)) {\n dispose(disposable);\n }\n } else {\n this.dispose();\n }\n}\nfunction has2(disposable) {\n var _a;\n return ((_a = this._d) == null ? void 0 : _a.has(disposable)) || false;\n}\nfunction make3(executor) {\n const disposable = executor();\n return disposable && this.add(disposable);\n}\nfunction remove3(disposable) {\n var _a;\n return ((_a = this._d) == null ? void 0 : _a.delete(disposable)) || false;\n}\nfunction size2() {\n var _a;\n return ((_a = this._d) == null ? void 0 : _a.size) || 0;\n}\n\n// node_modules/.pnpm/@wopjs+dom@0.1.3/node_modules/@wopjs/dom/dist/index.js\nfunction addEventListener(target, type, listener, options) {\n target.addEventListener(type, listener, options);\n return () => target.removeEventListener(type, listener, options);\n}\nvar listen = addEventListener;\n\n// node_modules/.pnpm/vanilla-lazyload@18.0.0/node_modules/vanilla-lazyload/dist/lazyload.esm.js\nvar runningOnBrowser = typeof window !== \"undefined\";\nvar isBot = runningOnBrowser && !(\"onscroll\" in window) || typeof navigator !== \"undefined\" && /(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent);\nvar isHiDpi = runningOnBrowser && window.devicePixelRatio > 1;\nvar defaultSettings = {\n elements_selector: \".lazy\",\n container: isBot || runningOnBrowser ? document : null,\n threshold: 300,\n thresholds: null,\n data_src: \"src\",\n data_srcset: \"srcset\",\n data_sizes: \"sizes\",\n data_bg: \"bg\",\n data_bg_hidpi: \"bg-hidpi\",\n data_bg_multi: \"bg-multi\",\n data_bg_multi_hidpi: \"bg-multi-hidpi\",\n data_bg_set: \"bg-set\",\n data_poster: \"poster\",\n class_applied: \"applied\",\n class_loading: \"loading\",\n class_loaded: \"loaded\",\n class_error: \"error\",\n class_entered: \"entered\",\n class_exited: \"exited\",\n unobserve_completed: true,\n unobserve_entered: false,\n cancel_on_exit: true,\n callback_enter: null,\n callback_exit: null,\n callback_applied: null,\n callback_loading: null,\n callback_loaded: null,\n callback_error: null,\n callback_finish: null,\n callback_cancel: null,\n use_native: false,\n restore_on_error: false\n};\nvar getExtendedSettings = (customSettings) => {\n return Object.assign({}, defaultSettings, customSettings);\n};\nvar createInstance = function(classObj, options) {\n let event;\n const eventString = \"LazyLoad::Initialized\";\n const instance = new classObj(options);\n try {\n event = new CustomEvent(eventString, { detail: { instance } });\n } catch (err) {\n event = document.createEvent(\"CustomEvent\");\n event.initCustomEvent(eventString, false, false, { instance });\n }\n window.dispatchEvent(event);\n};\nvar autoInitialize = (classObj, options) => {\n if (!options) {\n return;\n }\n if (!options.length) {\n createInstance(classObj, options);\n } else {\n for (let i = 0, optionsItem; optionsItem = options[i]; i += 1) {\n createInstance(classObj, optionsItem);\n }\n }\n};\nvar SRC = \"src\";\nvar SRCSET = \"srcset\";\nvar SIZES = \"sizes\";\nvar POSTER = \"poster\";\nvar ORIGINALS = \"llOriginalAttrs\";\nvar DATA = \"data\";\nvar statusLoading = \"loading\";\nvar statusLoaded = \"loaded\";\nvar statusApplied = \"applied\";\nvar statusEntered = \"entered\";\nvar statusError = \"error\";\nvar statusNative = \"native\";\nvar dataPrefix = \"data-\";\nvar statusDataName = \"ll-status\";\nvar getData = (element, attribute) => {\n return element.getAttribute(dataPrefix + attribute);\n};\nvar setData = (element, attribute, value) => {\n const attrName = dataPrefix + attribute;\n if (value === null) {\n element.removeAttribute(attrName);\n return;\n }\n element.setAttribute(attrName, value);\n};\nvar getStatus = (element) => getData(element, statusDataName);\nvar setStatus = (element, status) => setData(element, statusDataName, status);\nvar resetStatus = (element) => setStatus(element, null);\nvar hasEmptyStatus = (element) => getStatus(element) === null;\nvar hasStatusLoading = (element) => getStatus(element) === statusLoading;\nvar hasStatusError = (element) => getStatus(element) === statusError;\nvar hasStatusNative = (element) => getStatus(element) === statusNative;\nvar statusesAfterLoading = [statusLoading, statusLoaded, statusApplied, statusError];\nvar hadStartedLoading = (element) => statusesAfterLoading.indexOf(getStatus(element)) >= 0;\nvar safeCallback = (callback, arg1, arg2, arg3) => {\n if (!callback || typeof callback !== \"function\") {\n return;\n }\n if (arg3 !== void 0) {\n callback(arg1, arg2, arg3);\n return;\n }\n if (arg2 !== void 0) {\n callback(arg1, arg2);\n return;\n }\n callback(arg1);\n};\nvar addClass = (element, className) => {\n if (!runningOnBrowser) {\n return;\n }\n if (className === \"\") {\n return;\n }\n element.classList.add(className);\n};\nvar removeClass = (element, className) => {\n if (!runningOnBrowser) {\n return;\n }\n if (className === \"\") {\n return;\n }\n element.classList.remove(className);\n};\nvar addTempImage = (element) => {\n element.llTempImage = document.createElement(\"IMG\");\n};\nvar deleteTempImage = (element) => {\n delete element.llTempImage;\n};\nvar getTempImage = (element) => element.llTempImage;\nvar unobserve = (element, instance) => {\n if (!instance)\n return;\n const observer = instance._observer;\n if (!observer)\n return;\n observer.unobserve(element);\n};\nvar resetObserver = (observer) => {\n observer.disconnect();\n};\nvar unobserveEntered = (element, settings, instance) => {\n if (settings.unobserve_entered)\n unobserve(element, instance);\n};\nvar updateLoadingCount = (instance, delta) => {\n if (!instance)\n return;\n instance.loadingCount += delta;\n};\nvar decreaseToLoadCount = (instance) => {\n if (!instance)\n return;\n instance.toLoadCount -= 1;\n};\nvar setToLoadCount = (instance, value) => {\n if (!instance)\n return;\n instance.toLoadCount = value;\n};\nvar isSomethingLoading = (instance) => instance.loadingCount > 0;\nvar haveElementsToLoad = (instance) => instance.toLoadCount > 0;\nvar getSourceTags = (parentTag) => {\n let sourceTags = [];\n for (let i = 0, childTag; childTag = parentTag.children[i]; i += 1) {\n if (childTag.tagName === \"SOURCE\") {\n sourceTags.push(childTag);\n }\n }\n return sourceTags;\n};\nvar forEachPictureSource = (element, fn) => {\n const parent = element.parentNode;\n if (!parent || parent.tagName !== \"PICTURE\") {\n return;\n }\n let sourceTags = getSourceTags(parent);\n sourceTags.forEach(fn);\n};\nvar forEachVideoSource = (element, fn) => {\n let sourceTags = getSourceTags(element);\n sourceTags.forEach(fn);\n};\nvar attrsSrc = [SRC];\nvar attrsSrcPoster = [SRC, POSTER];\nvar attrsSrcSrcsetSizes = [SRC, SRCSET, SIZES];\nvar attrsData = [DATA];\nvar hasOriginalAttrs = (element) => !!element[ORIGINALS];\nvar getOriginalAttrs = (element) => element[ORIGINALS];\nvar deleteOriginalAttrs = (element) => delete element[ORIGINALS];\nvar setOriginalsObject = (element, attributes) => {\n if (hasOriginalAttrs(element)) {\n return;\n }\n const originals = {};\n attributes.forEach((attribute) => {\n originals[attribute] = element.getAttribute(attribute);\n });\n element[ORIGINALS] = originals;\n};\nvar saveOriginalBackgroundStyle = (element) => {\n if (hasOriginalAttrs(element)) {\n return;\n }\n element[ORIGINALS] = { backgroundImage: element.style.backgroundImage };\n};\nvar setOrResetAttribute = (element, attrName, value) => {\n if (!value) {\n element.removeAttribute(attrName);\n return;\n }\n element.setAttribute(attrName, value);\n};\nvar restoreOriginalAttrs = (element, attributes) => {\n if (!hasOriginalAttrs(element)) {\n return;\n }\n const originals = getOriginalAttrs(element);\n attributes.forEach((attribute) => {\n setOrResetAttribute(element, attribute, originals[attribute]);\n });\n};\nvar restoreOriginalBgImage = (element) => {\n if (!hasOriginalAttrs(element)) {\n return;\n }\n const originals = getOriginalAttrs(element);\n element.style.backgroundImage = originals.backgroundImage;\n};\nvar manageApplied = (element, settings, instance) => {\n addClass(element, settings.class_applied);\n setStatus(element, statusApplied);\n if (!instance)\n return;\n if (settings.unobserve_completed) {\n unobserve(element, settings);\n }\n safeCallback(settings.callback_applied, element, instance);\n};\nvar manageLoading = (element, settings, instance) => {\n addClass(element, settings.class_loading);\n setStatus(element, statusLoading);\n if (!instance)\n return;\n updateLoadingCount(instance, 1);\n safeCallback(settings.callback_loading, element, instance);\n};\nvar setAttributeIfValue = (element, attrName, value) => {\n if (!value) {\n return;\n }\n element.setAttribute(attrName, value);\n};\nvar setImageAttributes = (element, settings) => {\n setAttributeIfValue(element, SIZES, getData(element, settings.data_sizes));\n setAttributeIfValue(element, SRCSET, getData(element, settings.data_srcset));\n setAttributeIfValue(element, SRC, getData(element, settings.data_src));\n};\nvar setSourcesImg = (imgEl, settings) => {\n forEachPictureSource(imgEl, (sourceTag) => {\n setOriginalsObject(sourceTag, attrsSrcSrcsetSizes);\n setImageAttributes(sourceTag, settings);\n });\n setOriginalsObject(imgEl, attrsSrcSrcsetSizes);\n setImageAttributes(imgEl, settings);\n};\nvar setSourcesIframe = (iframe, settings) => {\n setOriginalsObject(iframe, attrsSrc);\n setAttributeIfValue(iframe, SRC, getData(iframe, settings.data_src));\n};\nvar setSourcesVideo = (videoEl, settings) => {\n forEachVideoSource(videoEl, (sourceEl) => {\n setOriginalsObject(sourceEl, attrsSrc);\n setAttributeIfValue(sourceEl, SRC, getData(sourceEl, settings.data_src));\n });\n setOriginalsObject(videoEl, attrsSrcPoster);\n setAttributeIfValue(videoEl, POSTER, getData(videoEl, settings.data_poster));\n setAttributeIfValue(videoEl, SRC, getData(videoEl, settings.data_src));\n videoEl.load();\n};\nvar setSourcesObject = (object, settings) => {\n setOriginalsObject(object, attrsData);\n setAttributeIfValue(object, DATA, getData(object, settings.data_src));\n};\nvar setBackground = (element, settings, instance) => {\n const bg1xValue = getData(element, settings.data_bg);\n const bgHiDpiValue = getData(element, settings.data_bg_hidpi);\n const bgDataValue = isHiDpi && bgHiDpiValue ? bgHiDpiValue : bg1xValue;\n if (!bgDataValue)\n return;\n element.style.backgroundImage = `url(\"${bgDataValue}\")`;\n getTempImage(element).setAttribute(SRC, bgDataValue);\n manageLoading(element, settings, instance);\n};\nvar setMultiBackground = (element, settings, instance) => {\n const bg1xValue = getData(element, settings.data_bg_multi);\n const bgHiDpiValue = getData(element, settings.data_bg_multi_hidpi);\n const bgDataValue = isHiDpi && bgHiDpiValue ? bgHiDpiValue : bg1xValue;\n if (!bgDataValue) {\n return;\n }\n element.style.backgroundImage = bgDataValue;\n manageApplied(element, settings, instance);\n};\nvar setImgsetBackground = (element, settings, instance) => {\n const bgImgSetDataValue = getData(element, settings.data_bg_set);\n if (!bgImgSetDataValue) {\n return;\n }\n const imgSetValues = bgImgSetDataValue.split(\"|\");\n let bgImageValues = imgSetValues.map((value) => `image-set(${value})`);\n element.style.backgroundImage = bgImageValues.join();\n if (element.style.backgroundImage === \"\") {\n bgImageValues = imgSetValues.map((value) => `-webkit-image-set(${value})`);\n element.style.backgroundImage = bgImageValues.join();\n }\n manageApplied(element, settings, instance);\n};\nvar setSourcesFunctions = {\n IMG: setSourcesImg,\n IFRAME: setSourcesIframe,\n VIDEO: setSourcesVideo,\n OBJECT: setSourcesObject\n};\nvar setSourcesNative = (element, settings) => {\n const setSourcesFunction = setSourcesFunctions[element.tagName];\n if (!setSourcesFunction) {\n return;\n }\n setSourcesFunction(element, settings);\n};\nvar setSources = (element, settings, instance) => {\n const setSourcesFunction = setSourcesFunctions[element.tagName];\n if (!setSourcesFunction) {\n return;\n }\n setSourcesFunction(element, settings);\n manageLoading(element, settings, instance);\n};\nvar elementsWithLoadEvent = [\"IMG\", \"IFRAME\", \"VIDEO\", \"OBJECT\"];\nvar hasLoadEvent = (element) => elementsWithLoadEvent.indexOf(element.tagName) > -1;\nvar checkFinish = (settings, instance) => {\n if (instance && !isSomethingLoading(instance) && !haveElementsToLoad(instance)) {\n safeCallback(settings.callback_finish, instance);\n }\n};\nvar addEventListener2 = (element, eventName, handler) => {\n element.addEventListener(eventName, handler);\n element.llEvLisnrs[eventName] = handler;\n};\nvar removeEventListener = (element, eventName, handler) => {\n element.removeEventListener(eventName, handler);\n};\nvar hasEventListeners = (element) => {\n return !!element.llEvLisnrs;\n};\nvar addEventListeners = (element, loadHandler2, errorHandler2) => {\n if (!hasEventListeners(element))\n element.llEvLisnrs = {};\n const loadEventName = element.tagName === \"VIDEO\" ? \"loadeddata\" : \"load\";\n addEventListener2(element, loadEventName, loadHandler2);\n addEventListener2(element, \"error\", errorHandler2);\n};\nvar removeEventListeners = (element) => {\n if (!hasEventListeners(element)) {\n return;\n }\n const eventListeners = element.llEvLisnrs;\n for (let eventName in eventListeners) {\n const handler = eventListeners[eventName];\n removeEventListener(element, eventName, handler);\n }\n delete element.llEvLisnrs;\n};\nvar doneHandler = (element, settings, instance) => {\n deleteTempImage(element);\n updateLoadingCount(instance, -1);\n decreaseToLoadCount(instance);\n removeClass(element, settings.class_loading);\n if (settings.unobserve_completed) {\n unobserve(element, instance);\n }\n};\nvar loadHandler = (event, element, settings, instance) => {\n const goingNative = hasStatusNative(element);\n doneHandler(element, settings, instance);\n addClass(element, settings.class_loaded);\n setStatus(element, statusLoaded);\n safeCallback(settings.callback_loaded, element, instance);\n if (!goingNative)\n checkFinish(settings, instance);\n};\nvar errorHandler = (event, element, settings, instance) => {\n const goingNative = hasStatusNative(element);\n doneHandler(element, settings, instance);\n addClass(element, settings.class_error);\n setStatus(element, statusError);\n safeCallback(settings.callback_error, element, instance);\n if (settings.restore_on_error)\n restoreOriginalAttrs(element, attrsSrcSrcsetSizes);\n if (!goingNative)\n checkFinish(settings, instance);\n};\nvar addOneShotEventListeners = (element, settings, instance) => {\n const elementToListenTo = getTempImage(element) || element;\n if (hasEventListeners(elementToListenTo)) {\n return;\n }\n const _loadHandler = (event) => {\n loadHandler(event, element, settings, instance);\n removeEventListeners(elementToListenTo);\n };\n const _errorHandler = (event) => {\n errorHandler(event, element, settings, instance);\n removeEventListeners(elementToListenTo);\n };\n addEventListeners(elementToListenTo, _loadHandler, _errorHandler);\n};\nvar loadBackground = (element, settings, instance) => {\n addTempImage(element);\n addOneShotEventListeners(element, settings, instance);\n saveOriginalBackgroundStyle(element);\n setBackground(element, settings, instance);\n setMultiBackground(element, settings, instance);\n setImgsetBackground(element, settings, instance);\n};\nvar loadRegular = (element, settings, instance) => {\n addOneShotEventListeners(element, settings, instance);\n setSources(element, settings, instance);\n};\nvar load = (element, settings, instance) => {\n if (hasLoadEvent(element)) {\n loadRegular(element, settings, instance);\n } else {\n loadBackground(element, settings, instance);\n }\n};\nvar loadNative = (element, settings, instance) => {\n element.setAttribute(\"loading\", \"lazy\");\n addOneShotEventListeners(element, settings, instance);\n setSourcesNative(element, settings);\n setStatus(element, statusNative);\n};\nvar removeImageAttributes = (element) => {\n element.removeAttribute(SRC);\n element.removeAttribute(SRCSET);\n element.removeAttribute(SIZES);\n};\nvar resetSourcesImg = (element) => {\n forEachPictureSource(element, (sourceTag) => {\n removeImageAttributes(sourceTag);\n });\n removeImageAttributes(element);\n};\nvar restoreImg = (imgEl) => {\n forEachPictureSource(imgEl, (sourceEl) => {\n restoreOriginalAttrs(sourceEl, attrsSrcSrcsetSizes);\n });\n restoreOriginalAttrs(imgEl, attrsSrcSrcsetSizes);\n};\nvar restoreVideo = (videoEl) => {\n forEachVideoSource(videoEl, (sourceEl) => {\n restoreOriginalAttrs(sourceEl, attrsSrc);\n });\n restoreOriginalAttrs(videoEl, attrsSrcPoster);\n videoEl.load();\n};\nvar restoreIframe = (iframeEl) => {\n restoreOriginalAttrs(iframeEl, attrsSrc);\n};\nvar restoreObject = (objectEl) => {\n restoreOriginalAttrs(objectEl, attrsData);\n};\nvar restoreFunctions = {\n IMG: restoreImg,\n IFRAME: restoreIframe,\n VIDEO: restoreVideo,\n OBJECT: restoreObject\n};\nvar restoreAttributes = (element) => {\n const restoreFunction = restoreFunctions[element.tagName];\n if (!restoreFunction) {\n restoreOriginalBgImage(element);\n return;\n }\n restoreFunction(element);\n};\nvar resetClasses = (element, settings) => {\n if (hasEmptyStatus(element) || hasStatusNative(element)) {\n return;\n }\n removeClass(element, settings.class_entered);\n removeClass(element, settings.class_exited);\n removeClass(element, settings.class_applied);\n removeClass(element, settings.class_loading);\n removeClass(element, settings.class_loaded);\n removeClass(element, settings.class_error);\n};\nvar restore = (element, settings) => {\n restoreAttributes(element);\n resetClasses(element, settings);\n resetStatus(element);\n deleteOriginalAttrs(element);\n};\nvar cancelLoading = (element, entry, settings, instance) => {\n if (!settings.cancel_on_exit)\n return;\n if (!hasStatusLoading(element))\n return;\n if (element.tagName !== \"IMG\")\n return;\n removeEventListeners(element);\n resetSourcesImg(element);\n restoreImg(element);\n removeClass(element, settings.class_loading);\n updateLoadingCount(instance, -1);\n resetStatus(element);\n safeCallback(settings.callback_cancel, element, entry, instance);\n};\nvar onEnter = (element, entry, settings, instance) => {\n const dontLoad = hadStartedLoading(element);\n setStatus(element, statusEntered);\n addClass(element, settings.class_entered);\n removeClass(element, settings.class_exited);\n unobserveEntered(element, settings, instance);\n safeCallback(settings.callback_enter, element, entry, instance);\n if (dontLoad)\n return;\n load(element, settings, instance);\n};\nvar onExit = (element, entry, settings, instance) => {\n if (hasEmptyStatus(element))\n return;\n addClass(element, settings.class_exited);\n cancelLoading(element, entry, settings, instance);\n safeCallback(settings.callback_exit, element, entry, instance);\n};\nvar tagsWithNativeLazy = [\"IMG\", \"IFRAME\", \"VIDEO\"];\nvar shouldUseNative = (settings) => settings.use_native && \"loading\" in HTMLImageElement.prototype;\nvar loadAllNative = (elements, settings, instance) => {\n elements.forEach((element) => {\n if (tagsWithNativeLazy.indexOf(element.tagName) === -1) {\n return;\n }\n loadNative(element, settings, instance);\n });\n setToLoadCount(instance, 0);\n};\nvar isIntersecting = (entry) => entry.isIntersecting || entry.intersectionRatio > 0;\nvar getObserverSettings = (settings) => ({\n root: settings.container === document ? null : settings.container,\n rootMargin: settings.thresholds || settings.threshold + \"px\"\n});\nvar intersectionHandler = (entries, settings, instance) => {\n entries.forEach(\n (entry) => isIntersecting(entry) ? onEnter(entry.target, entry, settings, instance) : onExit(entry.target, entry, settings, instance)\n );\n};\nvar observeElements = (observer, elements) => {\n elements.forEach((element) => {\n observer.observe(element);\n });\n};\nvar updateObserver = (observer, elementsToObserve) => {\n resetObserver(observer);\n observeElements(observer, elementsToObserve);\n};\nvar setObserver = (settings, instance) => {\n if (shouldUseNative(settings)) {\n return;\n }\n instance._observer = new IntersectionObserver((entries) => {\n intersectionHandler(entries, settings, instance);\n }, getObserverSettings(settings));\n};\nvar toArray = (nodeSet) => Array.prototype.slice.call(nodeSet);\nvar queryElements = (settings) => settings.container.querySelectorAll(settings.elements_selector);\nvar excludeManagedElements = (elements) => toArray(elements).filter(hasEmptyStatus);\nvar hasError = (element) => hasStatusError(element);\nvar filterErrorElements = (elements) => toArray(elements).filter(hasError);\nvar getElementsToLoad = (elements, settings) => excludeManagedElements(elements || queryElements(settings));\nvar retryLazyLoad = (settings, instance) => {\n const errorElements = filterErrorElements(queryElements(settings));\n errorElements.forEach((element) => {\n removeClass(element, settings.class_error);\n resetStatus(element);\n });\n instance.update();\n};\nvar setOnlineCheck = (settings, instance) => {\n if (!runningOnBrowser) {\n return;\n }\n instance._onlineHandler = () => {\n retryLazyLoad(settings, instance);\n };\n window.addEventListener(\"online\", instance._onlineHandler);\n};\nvar resetOnlineCheck = (instance) => {\n if (!runningOnBrowser) {\n return;\n }\n window.removeEventListener(\"online\", instance._onlineHandler);\n};\nvar LazyLoad = function(customSettings, elements) {\n const settings = getExtendedSettings(customSettings);\n this._settings = settings;\n this.loadingCount = 0;\n setObserver(settings, this);\n setOnlineCheck(settings, this);\n this.update(elements);\n};\nLazyLoad.prototype = {\n update: function(givenNodeset) {\n const settings = this._settings;\n const elementsToLoad = getElementsToLoad(givenNodeset, settings);\n setToLoadCount(this, elementsToLoad.length);\n if (isBot) {\n this.loadAll(elementsToLoad);\n return;\n }\n if (shouldUseNative(settings)) {\n loadAllNative(elementsToLoad, settings, this);\n return;\n }\n updateObserver(this._observer, elementsToLoad);\n },\n destroy: function() {\n if (this._observer) {\n this._observer.disconnect();\n }\n resetOnlineCheck(this);\n queryElements(this._settings).forEach((element) => {\n deleteOriginalAttrs(element);\n });\n delete this._observer;\n delete this._settings;\n delete this._onlineHandler;\n delete this.loadingCount;\n delete this.toLoadCount;\n },\n loadAll: function(elements) {\n const settings = this._settings;\n const elementsToLoad = getElementsToLoad(elements, settings);\n elementsToLoad.forEach((element) => {\n unobserve(element, this);\n load(element, settings, this);\n });\n },\n restoreAll: function() {\n const settings = this._settings;\n queryElements(settings).forEach((element) => {\n restore(element, settings);\n });\n }\n};\nLazyLoad.load = (element, customSettings) => {\n const settings = getExtendedSettings(customSettings);\n load(element, settings);\n};\nLazyLoad.resetStatus = (element) => {\n resetStatus(element);\n};\nif (runningOnBrowser) {\n autoInitialize(LazyLoad, window.lazyLoadOptions);\n}\n\n// src/icons/sidebar.ts\nfunction sidebarSVG(namespace) {\n const NS = \"http://www.w3.org/2000/svg\";\n const $svg = document.createElementNS(NS, \"svg\");\n $svg.setAttribute(\"class\", `${namespace}-footer-icon-sidebar`);\n $svg.setAttribute(\"viewBox\", \"0 0 64 64\");\n const $path = document.createElementNS(NS, \"path\");\n $path.setAttribute(\"fill\", \"currentColor\");\n $path.setAttribute(\"d\", \"M50 8H14c-3.309 0-6 2.691-6 6v36c0 3.309 2.691 6 6 6h36c3.309 0 6-2.691 6-6V14c0-3.309-2.691-6-6-6zM12 50V14c0-1.103.897-2 2-2h8v40h-8c-1.103 0-2-.897-2-2zm40 0c0 1.103-.897 2-2 2H26V12h24c1.103 0 2 .897 2 2z\");\n $svg.appendChild($path);\n return $svg;\n}\n\n// src/icons/arrow-left.ts\nfunction arrowLeftSVG(namespace) {\n const NS = \"http://www.w3.org/2000/svg\";\n const $svg = document.createElementNS(NS, \"svg\");\n $svg.setAttribute(\"class\", `${namespace}-footer-icon-arrow-left`);\n $svg.setAttribute(\"viewBox\", \"0 0 500 500\");\n const $path = document.createElementNS(NS, \"path\");\n $path.setAttribute(\"fill\", \"currentColor\");\n $path.setAttribute(\"d\", \"M177.81 249.959L337.473 90.295c2.722-2.865 2.651-7.378-.143-10.1-2.793-2.65-7.163-2.65-9.956 0l-164.75 164.75c-2.793 2.793-2.793 7.306 0 10.1l164.75 164.75c2.865 2.722 7.378 2.65 10.099-.143 2.651-2.794 2.651-7.163 0-9.957L177.809 249.959z\");\n $svg.appendChild($path);\n return $svg;\n}\n\n// src/icons/arrow-right.ts\nfunction arrowRightSVG(namespace) {\n const NS = \"http://www.w3.org/2000/svg\";\n const $svg = document.createElementNS(NS, \"svg\");\n $svg.setAttribute(\"class\", `${namespace}-footer-icon-arrow-right`);\n $svg.setAttribute(\"viewBox\", \"0 0 500 500\");\n const $path = document.createElementNS(NS, \"path\");\n $path.setAttribute(\"fill\", \"currentColor\");\n $path.setAttribute(\"d\", \"M322.19 250.041L162.527 409.705c-2.722 2.865-2.651 7.378.143 10.1 2.793 2.65 7.163 2.65 9.956 0l164.75-164.75c2.793-2.793 2.793-7.306 0-10.1l-164.75-164.75c-2.865-2.722-7.378-2.65-10.099.143-2.651 2.794-2.651 7.163 0 9.957l159.664 159.736z\");\n $svg.appendChild($path);\n return $svg;\n}\n\n// src/preload.ts\nvar _Preload = class _Preload {\n constructor(pages) {\n this.pages = pages;\n // 正在加载的链接\n this.loadingLinks = /* @__PURE__ */ new Map();\n // 需要预加载的链接集合\n this.preloadMap = /* @__PURE__ */ new Map();\n // 当前触摸的索引\n this.touchIndex = 0;\n this.preloadSize = 0;\n this.preloadMap = new Map(pages.map((e, index) => [index, {\n src: e.src,\n state: 0 /* unloaded */\n }]));\n this.preloadSize = this.preloadMap.size;\n this.touch(0, true);\n }\n touch(index, force = false) {\n if (index >= this.preloadSize) {\n this.touchIndex = 0;\n } else {\n this.touchIndex = index;\n }\n const value = this.preloadMap.get(this.touchIndex);\n if (value && value.state === 0 /* unloaded */) {\n this.createLink(this.touchIndex, force);\n }\n if (this.loadingLinks.size < _Preload.maxLinks) {\n const willLoad = [...this.preloadMap.entries()].find(([i, e]) => i > this.touchIndex && e.state !== 1 /* loaded */);\n if (willLoad) {\n this.requestAsyncCallBack(() => {\n this.touch(willLoad[0], false);\n }, 100);\n }\n }\n }\n createLink(index, force = false) {\n const value = this.preloadMap.get(index);\n if (force) {\n this.destroySomeLink(index);\n }\n if (value) {\n if (value.state === 1 /* loaded */) {\n return 1 /* loaded */;\n }\n const curlink = this.loadingLinks.get(index);\n if (curlink) {\n if (curlink.isForce !== force) {\n curlink.isForce = force;\n this.loadingLinks.set(index, curlink);\n }\n return 0 /* unloaded */;\n }\n if (this.loadingLinks.size > _Preload.maxLinks) {\n return 0 /* unloaded */;\n }\n const linkDom = document.createElement(\"link\");\n linkDom.rel = \"preload\";\n linkDom.as = \"image\";\n linkDom.href = value.src;\n linkDom.dataset.order = index + \"\";\n document.head.appendChild(linkDom);\n linkDom.onload = () => {\n const value2 = this.preloadMap.get(index);\n if (value2) {\n value2.state = 1 /* loaded */;\n this.preloadMap.set(index, value2);\n document.head.contains(linkDom) && document.head.removeChild(linkDom);\n this.loadingLinks.delete(index);\n this.touch(this.touchIndex + 1, false);\n }\n };\n linkDom.onerror = () => {\n const value2 = this.preloadMap.get(index);\n if (value2 == null ? void 0 : value2.src) {\n linkDom.href = value2.src;\n }\n };\n this.loadingLinks.set(index, {\n link: linkDom,\n isForce: force\n });\n value.state = 0 /* unloaded */;\n this.preloadMap.set(index, value);\n return 0 /* unloaded */;\n }\n return 2 /* error */;\n }\n destroySomeLink(excludeIndex) {\n for (const [index, { link }] of this.loadingLinks) {\n if (excludeIndex !== void 0 && index === excludeIndex) {\n continue;\n }\n document.head.contains(link) && document.head.removeChild(link);\n this.loadingLinks.delete(index);\n }\n }\n async requestAsyncCallBack(callBack, timeout) {\n await new Promise(function(resolve) {\n if (window.requestIdleCallback) {\n requestIdleCallback(() => {\n resolve(1);\n }, { timeout });\n } else {\n setTimeout(() => {\n resolve(2);\n }, timeout);\n }\n });\n callBack();\n }\n dispose() {\n this.destroySomeLink();\n this.preloadMap.clear();\n }\n};\n_Preload.maxLinks = 5;\nvar Preload = _Preload;\n\n// src/presentation.ts\nvar Presentation = class {\n constructor(config) {\n this.namespace = \"netless-app-presentation\";\n this.dispose = disposableStore();\n this.initialized = false;\n this.showPreview = false;\n this.pageIndex = 0;\n this.previewLazyload = null;\n this.timer = null;\n this.justDocsViewReadonly = false;\n var _a;\n this.pages = config.pages;\n this.preload = new Preload(this.pages);\n if (config.thumbnail)\n this.thumbnail = config.thumbnail;\n this.dispose.add(this.preload);\n this.readonly = (_a = config.readonly) != null ? _a : false;\n this.dom = document.createElement(\"div\");\n this.dom.className = this.namespace;\n this.contentDOM = document.createElement(\"div\");\n this.contentDOM.className = this.c(\"content\");\n this.previewDOM = document.createElement(\"div\");\n this.previewDOM.className = this.c(\"preview\");\n this.whiteboardDOM = document.createElement(\"div\");\n this.whiteboardDOM.className = this.c(\"wb-view\");\n this.footerDOM = document.createElement(\"div\");\n this.footerDOM.className = this.c(\"footer\");\n this.pageNumberInputDOM = document.createElement(\"input\");\n this.pageNumberInputDOM.className = this.c(\"page-number-input\");\n this.initialize();\n }\n setDocsViewReadonly(readonly) {\n this.justDocsViewReadonly = readonly;\n }\n initialize() {\n var _a;\n if (this.initialized)\n return;\n this.initialized = true;\n this.dispose.add(() => {\n var _a2;\n return (_a2 = this.previewLazyload) == null ? void 0 : _a2.destroy();\n });\n this.contentDOM.classList.toggle(this.c(\"readonly\"), this.readonly);\n this.dom.appendChild(this.contentDOM);\n const previewMask = this.contentDOM.appendChild(document.createElement(\"div\"));\n previewMask.className = this.c(\"preview-mask\");\n this.dispose.add(listen(previewMask, \"click\", (ev) => {\n if (this.readonly)\n return;\n if (ev.target == previewMask) {\n this.togglePreview(false);\n }\n }));\n this.contentDOM.appendChild(this.previewDOM);\n this.previewDOM.classList.add(\"tele-fancy-scrollbar\");\n const c_previewPage = this.c(\"preview-page\");\n const c_previewPageName = this.c(\"preview-page-name\");\n for (let index = 0; index < this.pages.length; ++index) {\n const page = this.pages[index];\n const previewSRC = page.thumbnail || this.thumbnail(page.src);\n const previewPage = document.createElement(\"a\");\n previewPage.className = `${c_previewPage} ${this.c(`preview-page-${index}`)}`;\n previewPage.setAttribute(\"href\", \"#\");\n previewPage.dataset.pageIndex = String(index);\n const img = document.createElement(\"img\");\n img.width = page.width;\n img.height = page.height;\n img.dataset.src = previewSRC;\n img.dataset.pageIndex = String(index);\n const name = document.createElement(\"span\");\n name.className = c_previewPageName;\n name.textContent = String(index + 1);\n name.dataset.pageIndex = String(index);\n previewPage.appendChild(img);\n previewPage.appendChild(name);\n this.previewDOM.appendChild(previewPage);\n }\n (_a = this.previewLazyload) == null ? void 0 : _a.update();\n this.dispose.add(listen(this.previewDOM, \"click\", (ev) => {\n var _a2;\n if (this.readonly)\n return;\n const pageIndex = (_a2 = ev.target.dataset) == null ? void 0 : _a2.pageIndex;\n if (pageIndex) {\n ev.preventDefault();\n ev.stopPropagation();\n ev.stopImmediatePropagation();\n this.onNewPageIndex(Number(pageIndex), \"preview\");\n this.togglePreview(false);\n }\n }));\n this.updateImage();\n this.contentDOM.appendChild(this.whiteboardDOM);\n this.footerDOM.classList.toggle(this.c(\"readonly\"), this.readonly);\n this.dom.appendChild(this.footerDOM);\n const btnSidebar = document.createElement(\"button\");\n btnSidebar.className = `${this.c(\"footer-btn\")} ${this.c(\"btn-sidebar\")}`;\n btnSidebar.appendChild(sidebarSVG(this.namespace));\n this.footerDOM.appendChild(btnSidebar);\n this.dispose.add(listen(btnSidebar, \"click\", () => {\n if (this.readonly)\n return;\n this.togglePreview();\n }));\n const pageJumps = document.createElement(\"div\");\n pageJumps.className = this.c(\"page-jumps\");\n this.footerDOM.appendChild(pageJumps);\n const btnPageBack = document.createElement(\"button\");\n btnPageBack.className = `${this.c(\"footer-btn\")} ${this.c(\"btn-page-back\")}`;\n btnPageBack.appendChild(arrowLeftSVG(this.namespace));\n pageJumps.appendChild(btnPageBack);\n this.dispose.add(listen(btnPageBack, \"click\", () => {\n if (this.readonly)\n return;\n if (this.pageIndex > 0)\n this.onNewPageIndex(this.pageIndex - 1, \"navigation\");\n }));\n const btnPageNext = document.createElement(\"button\");\n btnPageNext.className = `${this.c(\"footer-btn\")} ${this.c(\"btn-page-next\")}`;\n btnPageNext.appendChild(arrowRightSVG(this.namespace));\n pageJumps.appendChild(btnPageNext);\n this.dispose.add(listen(btnPageNext, \"click\", () => {\n if (this.readonly)\n return;\n if (this.pageIndex < this.pages.length - 1)\n this.onNewPageIndex(this.pageIndex + 1, \"navigation\");\n }));\n const pageNumber = document.createElement(\"div\");\n pageNumber.className = this.c(\"page-number\");\n this.footerDOM.appendChild(pageNumber);\n pageNumber.appendChild(this.pageNumberInputDOM);\n this.pageNumberInputDOM.value = String(this.pageIndex + 1);\n this.pageNumberInputDOM.disabled = this.readonly;\n this.dispose.add(listen(this.pageNumberInputDOM, \"focus\", () => {\n if (this.readonly)\n return;\n this.pageNumberInputDOM.select();\n }));\n this.dispose.add(listen(this.pageNumberInputDOM, \"change\", () => {\n if (this.readonly)\n return;\n if (this.pageNumberInputDOM.value) {\n this.onNewPageIndex(Number(this.pageNumberInputDOM.value) - 1, \"input\");\n }\n }));\n const totalPage = document.createElement(\"span\");\n totalPage.textContent = ` / ${this.pages.length}`;\n pageNumber.appendChild(totalPage);\n this.dispose.add(listen(window, \"keydown\", (ev) => {\n if (this.readonly || this.isEditable(ev.target) || this.justDocsViewReadonly)\n return;\n if ((ev.key == \"ArrowUp\" || ev.key == \"ArrowLeft\") && this.pageIndex > 0)\n this.onNewPageIndex(this.pageIndex - 1, \"keydown\");\n else if ((ev.key == \"ArrowDown\" || ev.key == \"ArrowRight\") && this.pageIndex < this.pages.length - 1)\n this.onNewPageIndex(this.pageIndex + 1, \"keydown\");\n }));\n }\n setDOM(dom) {\n if (this.dom == dom)\n return;\n dom.appendChild(this.contentDOM);\n dom.appendChild(this.footerDOM);\n this.dom = dom;\n }\n setReadonly(readonly) {\n if (this.readonly == readonly)\n return;\n this.contentDOM.classList.toggle(this.c(\"readonly\"), readonly);\n this.footerDOM.classList.toggle(this.c(\"readonly\"), readonly);\n this.pageNumberInputDOM.disabled = readonly;\n this.togglePreview(false);\n this.readonly = readonly;\n }\n setPageIndex(pageIndex) {\n if (Number.isSafeInteger(pageIndex)) {\n this.pageIndex = pageIndex;\n this.pageNumberInputDOM.value = String(pageIndex + 1);\n this.updateImage();\n }\n }\n togglePreview(showPreview) {\n this.showPreview = showPreview != null ? showPreview : !this.showPreview;\n this.contentDOM.classList.toggle(this.c(\"preview-active\"), this.showPreview);\n if (this.showPreview) {\n const previewPageDOM = this.previewDOM.querySelector(\".\" + this.c(`preview-page-${this.pageIndex}`));\n if (previewPageDOM) {\n this.previewLazyload || (this.previewLazyload = new LazyLoad({\n container: this.previewDOM,\n elements_selector: `.${this.c(\"preview-page>img\")}`\n }));\n this.previewDOM.scrollTo({ top: previewPageDOM.offsetTop - 16 });\n }\n }\n }\n // [origin] means the cause:\n // - navigation: user clicked on the left / right button on footer\n // - input: user filled the bottom-right page number input box\n // - preview: user clicked on the left preview menu's item\n // - keydown: this navigation is caused by user press left or right\n // Fastboard dispatchDocsEvent() triggers the \"navigation\" and \"input\" cause\n onNewPageIndex(index, _origin) {\n if (0 <= index && index < this.pages.length) {\n this.setPageIndex(index);\n }\n }\n page() {\n return this.pages[this.pageIndex];\n }\n updateImage() {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n this.timer = setTimeout(() => {\n this.timer = null;\n this.preload.touch(this.pageIndex, true);\n }, 200);\n }\n /** Returns a modified URL that points to the thumbnail image. */\n thumbnail(src) {\n try {\n const url = new URL(src);\n url.searchParams.set(\"x-oss-process\", \"image/resize,l_50\");\n return url.toString();\n } catch (err) {\n console.error(err);\n return src;\n }\n }\n c(className) {\n return `${this.namespace}-${className}`;\n }\n isEditable(el) {\n if (!el)\n return false;\n const { tagName } = el;\n return tagName == \"INPUT\" || tagName == \"TEXTAREA\" || tagName == \"SELECT\";\n }\n};\n\n// src/style.scss?inline\nvar style_default = \".netless-app-presentation{height:100%;display:flex;flex-flow:column nowrap}.netless-app-presentation-content{position:relative;height:100%;overflow:hidden}.netless-app-presentation-preview-mask{display:none;position:absolute;z-index:200;top:0;left:0;width:100%;height:100%}.netless-app-presentation-preview{display:flex;flex-direction:column;align-items:center;position:absolute;z-index:300;top:0;left:0;width:33%;max-width:200px;height:100%;padding-top:10px;transform:translate(-100%);background:#ededf0e6;box-shadow:inset -1px 0 #0000001c;transition:transform .4s;overflow:auto;overflow-y:scroll}.netless-app-presentation-preview-active .netless-app-presentation-preview-mask{display:block}.netless-app-presentation-preview-active .netless-app-presentation-preview{transform:translate(0)}.netless-app-presentation-preview-page{position:relative;display:block;width:55%;margin-bottom:10px;font-size:0;color:#0000;outline:none;border:7px solid rgba(0,0,0,0);border-radius:4px;transition:border-color .3s;user-select:none}.netless-app-presentation-preview-page:hover,.netless-app-presentation-preview-page.netless-app-presentation-preview-page-active{border-color:#444e601a}.netless-app-presentation-preview-page>img{width:100%;height:auto;box-sizing:border-box;border:1px solid rgba(0,0,0,.5);border-radius:1px;background-color:#fff;box-shadow:0 2px 8px #0000004d}.netless-app-presentation-preview-page-name{position:absolute;top:1px;left:-10px;transform:translate(-100%);text-align:right;font-size:12px;color:#5f5f5f;user-select:none}.netless-app-presentation-footer{box-sizing:border-box;height:26px;display:flex;align-items:center;padding:0 16px;border-top:1px solid #eeeef7;color:#191919}.netless-app-presentation-float-footer{width:100%;min-height:26px;position:absolute;left:0;bottom:0;z-index:2000;background:#f9f9fce6;transition:opacity .4s}.netless-app-presentation-footer-btn{box-sizing:border-box;width:26px;height:26px;font-size:0;margin:0;padding:3px;border:none;border-radius:1px;outline:none;color:currentColor;background:#0000;transition:background .4s;cursor:pointer;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.netless-app-presentation-footer-btn:hover{background:#ededf0e6}@media (hover: none){.netless-app-presentation-footer-btn:hover{background:#0000!important}}.netless-app-presentation-footer-btn>svg{width:100%;height:100%}.netless-app-presentation-footer-btn>svg:nth-of-type(2){display:none}.netless-app-presentation-footer-btn.netless-app-presentation-footer-btn-playing>svg:nth-of-type(1){display:none}.netless-app-presentation-footer-btn.netless-app-presentation-footer-btn-playing>svg:nth-of-type(2){display:initial}.netless-app-presentation-footer-btn~.netless-app-presentation-footer-btn{margin-left:15px}.netless-app-presentation-page-jumps{flex:1;display:flex;justify-content:center;align-items:center}.netless-app-presentation-page-number{margin-left:auto;font-size:13px;user-select:none;white-space:nowrap;word-break:keep-all}.netless-app-presentation-page-number-input{border:none;outline:none;width:3em;margin:0;padding:0 2px;text-align:right;font-size:13px;line-height:1;font-weight:400;font-family:inherit;border-radius:2px;color:currentColor;background:#0000;transition:background .4s;user-select:text;-webkit-tap-highlight-color:rgba(0,0,0,0)}.netless-app-presentation-page-number-input:hover,.netless-app-presentation-page-number-input:focus,.netless-app-presentation-page-number-input:active{background:#fff;box-shadow:#63636333 0 2px 8px}.netless-app-presentation-readonly.netless-app-presentation-footer{display:none}.netless-app-presentation-wb-view{position:absolute;top:0;left:0;width:100%;height:100%;z-index:100;overflow:hidden;transition:opacity .2s}.netless-app-presentation-image{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.netless-app-presentation-image>img{max-width:100%;max-height:100%;object-fit:contain}.telebox-color-scheme-dark .netless-app-presentation-page-number-input{color:#a6a6a8}.telebox-color-scheme-dark .netless-app-presentation-page-number-input:active,.telebox-color-scheme-dark .netless-app-presentation-page-number-input:focus,.telebox-color-scheme-dark .netless-app-presentation-page-number-input:hover{color:#222}.telebox-color-scheme-dark .netless-app-presentation-footer{color:#a6a6a8;background:#2d2d33;border-top:none}.telebox-color-scheme-dark .netless-app-presentation-footer-btn:hover{background:#212126}.telebox-color-scheme-dark .netless-app-presentation-preview{background:#323232e6}.netless-app-presentation-scrollbar-container{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:101}.netless-app-presentation-scrollbar-container-x,.netless-app-presentation-scrollbar-container-y{position:absolute;pointer-events:none;display:flex;justify-content:center;box-sizing:border-box;padding:0}.netless-app-presentation-scrollbar-container-x{bottom:0;left:0;height:6px;width:100%;padding-right:6px}.netless-app-presentation-scrollbar-container-y{top:0;right:0;width:6px;height:100%;flex-direction:column;padding-bottom:6px}.netless-app-presentation-scrollbar-x,.netless-app-presentation-scrollbar-y{border-radius:2px;background-color:#1b1f4d4d;pointer-events:auto;cursor:default}.netless-app-presentation-scrollbar-x{height:6px}.netless-app-presentation-scrollbar-y{width:6px}\";\n\n// src/store.ts\nfunction noop() {\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || a && typeof a === \"object\" || typeof a === \"function\";\n}\nfunction readable(value, start = noop) {\n let stop;\n const subscribers = /* @__PURE__ */ new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) {\n for (const run of subscribers) {\n run(value);\n }\n }\n }\n }\n function subscribe(run) {\n subscribers.add(run);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run(value);\n return () => {\n subscribers.delete(run);\n if (subscribers.size === 0) {\n stop && stop();\n stop = void 0;\n }\n };\n }\n function reaction(run) {\n subscribers.add(run);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n return () => {\n subscribers.delete(run);\n if (subscribers.size === 0) {\n stop && stop();\n stop = void 0;\n }\n };\n }\n function dispose2(new_value) {\n if (new_value !== void 0) {\n set(new_value);\n }\n subscribers.clear();\n stop && stop();\n stop = void 0;\n }\n return {\n get value() {\n if (subscribers.size === 0) {\n stop = start(set) || noop;\n stop();\n stop = void 0;\n }\n return value;\n },\n subscribe,\n reaction,\n dispose: dispose2\n };\n}\n\n// src/scrollbar/Draggable.ts\nfunction makeDraggable(element, options) {\n let currentDragger = null;\n let originalMouseX = 0;\n let originalMouseY = 0;\n const { onDragEnd, onDrag, onDragStart, direction = \"xy\" } = options;\n const drag = (e, state) => {\n e.stopPropagation();\n if (!currentDragger)\n return;\n let transformedDragX = 0;\n let transformedDragY = 0;\n if (direction === \"x\") {\n transformedDragX = Math.round(e.pageX - originalMouseX);\n } else if (direction === \"y\") {\n transformedDragY = Math.round(e.pageY - originalMouseY);\n } else {\n transformedDragX = Math.round(e.pageX - originalMouseX);\n transformedDragY = Math.round(e.pageY - originalMouseY);\n }\n if (state === 3 /* END */) {\n onDragEnd == null ? void 0 : onDragEnd({ x: transformedDragX, y: transformedDragY });\n } else {\n onDrag == null ? void 0 : onDrag({ x: transformedDragX, y: transformedDragY });\n }\n };\n element.addEventListener(\"pointerdown\", bindDrag);\n function bindDrag(e) {\n currentDragger = e.target;\n e.stopPropagation();\n if (currentDragger !== element) {\n return;\n }\n originalMouseX = e.pageX;\n originalMouseY = e.pageY;\n element.addEventListener(\"pointermove\", drag);\n document.body.addEventListener(\"pointerup\", stopDrag);\n document.body.addEventListener(\"pointercancel\", stopDrag);\n element.setPointerCapture(e.pointerId);\n onDragStart == null ? void 0 : onDragStart();\n }\n function removeEventListener2() {\n currentDragger = null;\n element.removeEventListener(\"pointermove\", drag);\n document.body.removeEventListener(\"pointerup\", stopDrag);\n document.body.removeEventListener(\"pointercancel\", stopDrag);\n }\n function stopDrag(e) {\n if (!currentDragger)\n return;\n e.stopPropagation();\n drag(e, 3 /* END */);\n removeEventListener2();\n }\n function destroy() {\n stop();\n element.removeEventListener(\"pointerdown\", bindDrag);\n }\n function stop() {\n removeEventListener2();\n }\n return { destroy };\n}\n\n// src/scrollbar/index.ts\nvar import_lodash = __toESM(require_lodash());\nvar Scrollbar = class {\n constructor(container, option, view) {\n this.namespace = \"netless-app-presentation\";\n this.scrollContainer = document.createElement(\"div\");\n this.option = {\n appId: \"\",\n getPageSize: () => {\n return {\n width: 0,\n height: 0\n };\n },\n getWritable: () => false,\n getOriginScale: () => 1,\n syncView: () => void 0\n };\n this.onCameraUpdated = (0, import_lodash.debounce)(() => {\n var _a, _b;\n if (this.readonly)\n return;\n const { scale, centerX, centerY } = this.view.camera;\n const originScale = this.option.getOriginScale();\n const { width: pageWidth, height: pageHeight } = this.option.getPageSize();\n const { width: viewWidth, height: viewHeight } = this.view.size;\n const originScaleX = viewWidth / pageWidth;\n const originScaleY = viewHeight / pageHeight;\n const ratioX = Math.min(Math.round(originScaleX / scale * 100) / 100, 1);\n const ratioY = Math.min(Math.round(originScaleY / scale * 100) / 100, 1);\n const scrollX = Math.round(centerX * originScaleX);\n const scrollY = Math.round(centerY * originScaleY);\n if (this.scrollbarX) {\n this.scrollbarX.style.width = `${ratioX * 100}%`;\n this.scrollbarX.style.display = ratioX === 1 ? \"none\" : \"block\";\n this.scrollbarX.style.transform = `translateX(${scrollX}px)`;\n }\n if (this.scrollbarY) {\n this.scrollbarY.style.height = `${ratioY * 100}%`;\n this.scrollbarY.style.display = ratioY === 1 ? \"none\" : \"block\";\n this.scrollbarY.style.transform = `translateY(${scrollY}px)`;\n }\n (_b = (_a = this.option.scrollbarEventCallback) == null ? void 0 : _a.onScrollCameraUpdated) == null ? void 0 : _b.call(_a, this.appId, originScale, scale);\n }, 50);\n this.onDragStart = () => {\n var _a, _b;\n const camera = this.view.camera;\n this.cameraCache = {\n centerX: camera.centerX,\n centerY: camera.centerY,\n scale: camera.scale\n };\n (_b = (_a = this.option.scrollbarEventCallback) == null ? void 0 : _a.onScrollbarDragStart) == null ? void 0 : _b.call(_a);\n };\n this.onDragX = (transformedDrag) => {\n var _a, _b;\n if (this.cameraCache) {\n const { x } = transformedDrag;\n const { width: pageWidth } = this.option.getPageSize();\n const { width: viewWidth } = this.view.size;\n const originScaleX = viewWidth / pageWidth;\n const { minX, maxX } = this.getScrollXRange(this.cameraCache);\n const scrollX = Math.round(x / originScaleX);\n let centerX = scrollX + this.cameraCache.centerX;\n if (centerX < minX) {\n centerX = minX;\n } else if (centerX > maxX) {\n centerX = maxX;\n }\n this.view.moveCamera({\n centerX,\n animationMode: \"immediately\"\n });\n (_b = (_a = this.option.scrollbarEventCallback) == null ? void 0 : _a.onScrollbarDragY) == null ? void 0 : _b.call(_a, centerX);\n }\n };\n this.onDragY = (transformedDrag) => {\n var _a, _b;\n if (this.cameraCache) {\n const { y } = transformedDrag;\n const { height: pageHeight } = this.option.getPageSize();\n const { height: viewHeight } = this.view.size;\n const originScaleY = viewHeight / pageHeight;\n const { minY, maxY } = this.getScrollYRange(this.cameraCache);\n const scrollY = Math.round(y / originScaleY);\n let centerY = scrollY + this.cameraCache.centerY;\n if (centerY < minY) {\n centerY = minY;\n } else if (centerY > maxY) {\n centerY = maxY;\n }\n this.view.moveCamera({\n centerY,\n animationMode: \"immediately\"\n });\n (_b = (_a = this.option.scrollbarEventCallback) == null ? void 0 : _a.onScrollbarDragY) == null ? void 0 : _b.call(_a, centerY);\n }\n };\n this.onDragEnd = () => {\n var _a, _b;\n this.cameraCache = void 0;\n this.option.syncView();\n (_b = (_a = this.option.scrollbarEventCallback) == null ? void 0 : _a.onScrollbarDragEnd) == null ? void 0 : _b.call(_a);\n };\n this.moveCamera = (camera) => {\n const { centerX, centerY, scale } = camera;\n const cacheCamera = this.view.camera;\n const _camera = {};\n if ((0, import_lodash.isNumber)(centerX)) {\n const { minX, maxX } = this.getScrollXRange(cacheCamera);\n let newCenterX = centerX;\n if (centerX < minX) {\n newCenterX = minX;\n } else if (centerX > maxX) {\n newCenterX = maxX;\n }\n _camera.centerX = newCenterX;\n }\n if ((0, import_lodash.isNumber)(centerY)) {\n const { minY, maxY } = this.getScrollYRange(cacheCamera);\n let newCenterY = centerY;\n if (centerY < minY) {\n newCenterY = minY;\n } else if (centerY > maxY) {\n newCenterY = maxY;\n }\n _camera.centerY = newCenterY;\n }\n if ((0, import_lodash.isNumber)(scale)) {\n let newScale = scale;\n const originScale = this.option.getOriginScale();\n if (scale < originScale) {\n newScale = originScale;\n }\n _camera.scale = newScale;\n }\n this.view.moveCamera(__spreadProps(__spreadValues({}, _camera), {\n animationMode: \"immediately\"\n }));\n this.option.syncView();\n };\n this.scrollContainer.className = this.c(\"scrollbar-container\");\n this.container = container;\n this.option = option;\n this.appId = option.appId;\n this.readonly = option.readonly || false;\n this.view = view;\n this.init();\n }\n c(className) {\n return `${this.namespace}-${className}`;\n }\n setReadonly(bol) {\n this.readonly = bol;\n this.destroy();\n if (!this.readonly) {\n this.init();\n }\n }\n getScrollXRange(camera) {\n const { width: pageWidth } = this.option.getPageSize();\n const { width: viewWidth } = this.view.size;\n const originScaleX = viewWidth / pageWidth;\n const scale = camera.scale;\n const ratio = Math.min(Math.round(originScaleX / scale * 100) / 100, 1);\n const scrollWidth = pageWidth * (1 - ratio);\n const minX = -scrollWidth / 2;\n const maxX = scrollWidth / 2;\n return { minX, maxX };\n }\n getScrollYRange(camera) {\n const { height: pageHeight } = this.option.getPageSize();\n const { height: viewHeight } = this.view.size;\n const originScaleY = viewHeight / pageHeight;\n const scale = camera.scale;\n const ratio = Math.min(Math.round(originScaleY / scale * 100) / 100, 1);\n const scrollHeight = pageHeight * (1 - ratio);\n const minY = -scrollHeight / 2;\n const maxY = scrollHeight / 2;\n return { minY, maxY };\n }\n init() {\n this.scrollbarX = document.createElement(\"div\");\n this.scrollbarX.classList.add(this.c(\"scrollbar-x\"));\n if (this.option.getWritable()) {\n this.draggableX = makeDraggable(this.scrollbarX, {\n direction: \"x\",\n onDrag: this.onDragX,\n onDragEnd: this.onDragEnd,\n onDragStart: this.onDragStart\n });\n }\n Object.assign(this.scrollbarX.style, {\n width: \"100%\",\n display: \"none\"\n });\n this.scrollbarContainerX = document.createElement(\"div\");\n this.scrollbarContainerX.classList.add(this.c(\"scrollbar-container-x\"));\n this.scrollbarContainerX.appendChild(this.scrollbarX);\n this.scrollbarY = document.createElement(\"div\");\n this.scrollbarY.classList.add(this.c(\"scrollbar-y\"));\n if (this.option.getWritable()) {\n this.draggableY = makeDraggable(this.scrollbarY, {\n direction: \"y\",\n onDrag: this.onDragY,\n onDragEnd: this.onDragEnd,\n onDragStart: this.onDragStart\n });\n }\n Object.assign(this.scrollbarY.style, {\n height: \"100%\",\n display: \"none\"\n });\n this.scrollbarContainerY = document.createElement(\"div\");\n this.scrollbarContainerY.classList.add(this.c(\"scrollbar-container-y\"));\n this.scrollbarContainerY.appendChild(this.scrollbarY);\n this.scrollContainer.append(this.scrollbarContainerX, this.scrollbarContainerY);\n this.container.appendChild(this.scrollContainer);\n this.view.callbacks.on(\"onCameraUpdated\", this.onCameraUpdated);\n this.onCameraUpdated();\n }\n destroy() {\n this.view.callbacks.off(\"onCameraUpdated\", this.onCameraUpdated);\n if (this.scrollbarX && this.scrollbarContainerX) {\n this.scrollbarContainerX.removeChild(this.scrollbarX);\n this.scrollbarX.remove();\n this.scrollbarContainerX.remove();\n this.scrollbarX = void 0;\n }\n if (this.scrollbarY && this.scrollbarContainerY) {\n this.scrollbarContainerY.removeChild(this.scrollbarY);\n this.scrollbarY.remove();\n this.scrollbarContainerY.remove();\n this.scrollbarY = void 0;\n }\n if (this.draggableX) {\n this.draggableX.destroy();\n this.draggableX = void 0;\n }\n if (this.draggableY) {\n this.draggableY.destroy();\n this.draggableY = void 0;\n }\n }\n};\n\n// src/app-presentation.ts\nvar import_lodash2 = __toESM(require_lodash());\nvar emptySceneName = \"$$empty$$\";\nvar ppt2page = (ppt, name) => ppt ? { width: ppt.width, height: ppt.height, src: ppt.src, thumbnail: ppt.previewURL, name } : null;\nvar createLogger = (room) => {\n if (room && room.logger) {\n return (...args) => room.logger.info(...args);\n } else {\n return (...args) => console.log(...args);\n }\n};\nvar scenesEqual = (scenes1, scenes2) => {\n if (!scenes1 || !scenes2) {\n return false;\n }\n if (scenes1.length !== scenes2.length)\n return false;\n return scenes1.every((scene, index) => {\n var _a, _b, _c, _d, _e, _f;\n const scene2 = scenes2[index];\n return scene.name === scene2.name && ((_a = scene.ppt) == null ? void 0 : _a.width) === ((_b = scene2.ppt) == null ? void 0 : _b.width) && ((_c = scene.ppt) == null ? void 0 : _c.height) === ((_d = scene2.ppt) == null ? void 0 : _d.height) && ((_e = scene.ppt) == null ? void 0 : _e.src) === ((_f = scene2.ppt) == null ? void 0 : _f.src);\n });\n};\nvar NetlessAppPresentation = {\n kind: \"Presentation\",\n setup(context) {\n var _a, _b, _c;\n const view = context.getView();\n if (!view)\n throw new Error(\"[Presentation]: no whiteboard view, make sure you have added options.scenePath in addApp()\");\n const pages = (_a = context.getScenes()) == null ? void 0 : _a.map(({ ppt, name }) => ppt2page(ppt, name)).filter(Boolean);\n if (!pages || pages.length === 0)\n throw new Error(\"[Presentation]: empty scenes, make sure you have added options.scenes in addApp()\");\n if (pages[0].src.startsWith(\"ppt\"))\n throw new Error(\"[Presentation]: legacy dynamic PPT is unsupported, please use the projector converter and @netless/slide to render it\");\n const scenePath = context.getInitScenePath();\n const options = context.getAppOptions() || {};\n let maxCameraScale = (_b = options.maxCameraScale) != null ? _b : 3;\n if (!(Number.isFinite(maxCameraScale) && maxCameraScale > 0)) {\n console.warn(`[Presentation] maxCameraScale should be a positive number, got ${options.maxCameraScale}`);\n maxCameraScale = 3;\n }\n const log = options.log || createLogger(context.getRoom());\n log(`[Presentation] new ${context.appId}`);\n const dispose2 = disposableStore();\n dispose2.add(() => log(`[Presentation] dispose ${context.appId}`));\n const view$$ = context.createStorage(\"view\", { uid: \"\", originX: 0, originY: 0, width: 0, height: 0 });\n const _addScenePathListener = (name, listener) => {\n const windowManger = context.manager.windowManger;\n windowManger.emitter.on(name, listener);\n return () => windowManger == null ? void 0 : windowManger.emitter.off(name, listener);\n };\n const getPageIndex = (view2) => {\n const focusScenePath = view2.focusScenePath;\n const name = focusScenePath == null ? void 0 : focusScenePath.split(\"/\").pop();\n let _pageIndex = pages.findIndex((page, index) => {\n var _a2;\n const n = (_a2 = page.name) != null ? _a2 : String(index + 1);\n return n === name;\n });\n if (_pageIndex === -1) {\n _pageIndex = 0;\n }\n return _pageIndex;\n };\n let pageIndex = getPageIndex(view);\n const pageIndex$ = readable(pageIndex, (set) => {\n set(pageIndex);\n return _addScenePathListener(\"onAppScenePathChange\", (payload) => {\n const { appId } = payload;\n if (appId === context.appId) {\n const _pageIndex = getPageIndex(payload.view);\n set(_pageIndex);\n }\n });\n });\n dispose2.add(() => {\n pageIndex$.dispose();\n });\n if (context.isAddApp) {\n if (pages.length > 100)\n console.warn(`[Presentation]: too many pages (${pages.length}), may cause performance issues`);\n let redirectResolve = void 0;\n const room2 = context.getRoom();\n if (room2 && room2.isWritable) {\n const scenes = room2.entireScenes()[scenePath];\n if (pageIndex$.value < 0 || pageIndex$.value >= pages.length) {\n throw new Error(`[Presentation] Invalid page index: ${pageIndex$.value}, scenes length: ${pages.length}`);\n }\n new Promise((resolve) => {\n const { name, ppt } = scenes[pageIndex$.value];\n redirectResolve = resolve;\n const _scenes = pages.map((p, index) => {\n var _a2;\n return {\n name: (_a2 = p.name) != null ? _a2 : String(index + 1),\n ppt: { width: p.width, height: p.height, src: p.src }\n };\n });\n if (!scenesEqual(scenes, _scenes)) {\n room2.removeScenes(scenePath);\n room2.putScenes(scenePath, _scenes);\n }\n if (name === _scenes[pageIndex$.value].name && !ppt) {\n context.addPage({ scene: { name: emptySceneName } }).then(() => {\n log(`[Presentation] setup setScenePath ${scenePath}/${emptySceneName}`);\n context.setScenePath(`${scenePath}/${emptySceneName}`).then(() => {\n redirectResolve && redirectResolve(true);\n });\n });\n } else {\n redirectResolve && redirectResolve(false);\n }\n }).then(async (bol) => {\n await syncPage(pageIndex$.value, room2.logger);\n if (bol) {\n log(`[Presentation] setup removeScenes ${scenePath}/${emptySceneName}`);\n room2.removeScenes(`${scenePath}/${emptySceneName}`);\n }\n });\n }\n }\n const me = ((_c = context.getRoom()) == null ? void 0 : _c.uid) || context.getDisplayer().observerId + \"\";\n let throttleSyncView = 0;\n const syncPage = async (index, logger) => {\n var _a2;\n if (!context.getIsWritable())\n return;\n const scenes = context.getDisplayer().entireScenes()[scenePath];\n if (!scenes)\n return;\n const p = pages[index];\n const name = (_a2 = p.name) != null ? _a2 : String(index + 1);\n if (!scenes.some((scene) => scene.name === name)) {\n await context.addPage({ scene: { name, ppt: { width: p.width, height: p.height, src: p.src } } });\n }\n if (logger) {\n logger.info(`[Presentation] syncPage ${scenePath}/${name}`);\n }\n await context.setScenePath(`${scenePath}/${name}`);\n };\n const jumpPage = (index) => {\n var _a2;\n if (!context.getIsWritable()) {\n console.warn(\"[Presentation]: no permission, make sure you have test room.isWritable\");\n return false;\n }\n if (!(0 <= index && index < pages.length)) {\n console.warn(`[Presentation]: page ${index + 1} out of bounds [1, ${pages.length}]`);\n return false;\n }\n const scenes = context.getDisplayer().entireScenes()[scenePath];\n if (!scenes) {\n console.warn(`[Presentation]: no scenes found at ${scenePath}, make sure you have added options.scenePath in addApp()`);\n return false;\n }\n const p = pages[index];\n const name = (_a2 = p.name) != null ? _a2 : String(index + 1);\n if (!scenes.some((scene) => scene.name === name)) {\n context.addPage({ scene: { name, ppt: { width: p.width, height: p.height, src: p.src } } });\n }\n syncPage(index);\n return true;\n };\n const prevPage = () => jumpPage(pageIndex$.value - 1);\n const nextPage = () => jumpPage(pageIndex$.value + 1);\n const pageState = () => ({ index: pageIndex$.value, length: pages.length });\n const scaleDocsToFit = () => {\n const { width, height } = app.page() || {};\n if (width && height) {\n view.moveCameraToContain({\n originX: -width / 2,\n originY: -height / 2,\n width,\n height,\n animationMode: \"immediately\"\n });\n const maxScale = view.camera.scale * (options.disableCameraTransform ? 1 : maxCameraScale);\n const minScale = view.camera.scale;\n view.setCameraBound({\n damping: 1,\n maxContentMode: () => maxScale,\n minContentMode: () => minScale,\n centerX: 0,\n centerY: 0,\n width,\n height\n });\n syncViewFromRemote(true);\n }\n };\n const syncView = () => {\n if (context.getIsWritable()) {\n if (options.debounceSync) {\n clearTimeout(throttleSyncView);\n throttleSyncView = 0;\n }\n if (throttleSyncView > 0)\n return;\n const { width, height } = app.page() || {};\n if (width && height) {\n throttleSyncView = setTimeout(() => {\n throttleSyncView = 0;\n const { camera, size } = view;\n const fixedW = Math.min(size.width, size.height * width / height);\n const fixedH = Math.min(size.height, size.width * height / width);\n const w = fixedW / camera.scale;\n const h = fixedH / camera.scale;\n const x = camera.centerX - w / 2;\n const y = camera.centerY - h / 2;\n view$$.setState({ uid: me, originX: x, originY: y, width: w, height: h });\n }, 50);\n }\n }\n };\n dispose2.add(() => {\n clearTimeout(throttleSyncView);\n throttleSyncView = 0;\n });\n const syncViewFromRemote = (force = false, animate = false) => {\n const { uid, originX, originY, width, height } = view$$.state;\n if ((force || uid !== me) && width > 0 && height > 0) {\n view.moveCameraToContain({\n originX,\n originY,\n width,\n height,\n animationMode: animate ? \"continuous\" : \"immediately\"\n });\n }\n };\n dispose2.add(view$$.addStateChangedListener(() => syncViewFromRemote(false, true)));\n const getPageSize = () => {\n const { width, height } = app.page() || {};\n return { width: width || 0, height: height || 0 };\n };\n const box = context.getBox();\n const app = dispose2.add(createPresentation(box, pages, jumpPage, pageIndex$, view, options.thumbnail, options.useClipView));\n app.contentDOM.dataset.appPresentationVersion = \"0.1.9\";\n app.scaleDocsToFit = scaleDocsToFit;\n app.log = log;\n if (options.justDocsViewReadonly) {\n app.setDocsViewReadonly(true);\n }\n const room = context.getRoom();\n const goToPageByClick = () => {\n var _a2, _b2, _c2, _d;\n const currentApplianceName = (_d = (_c2 = (_b2 = (_a2 = context.getRoom()) == null ? void 0 : _a2.state) == null ? void 0 : _b2.memberState) == null ? void 0 : _c2.currentApplianceName) != null ? _d : \"\";\n if (!app.readonly && currentApplianceName === \"clicker\") {\n nextPage();\n }\n };\n if (room && options.goToPageByClick && app.whiteboardDOM) {\n dispose2.make(() => {\n app.whiteboardDOM.addEventListener(\"click\", goToPageByClick);\n return () => app.whiteboardDOM.removeEventListener(\"click\", goToPageByClick);\n });\n }\n context.mountView(app.whiteboardDOM);\n if (options.disableCameraTransform) {\n view.disableCameraTransform = true;\n }\n scaleDocsToFit();\n dispose2.make(() => {\n view.callbacks.on(\"onSizeUpdated\", scaleDocsToFit);\n return () => view.callbacks.off(\"onSizeUpdated\", scaleDocsToFit);\n });\n if (options.viewport && context.isAddApp && app.page()) {\n const page = app.page();\n const viewport = typeof options.viewport === \"function\" ? options.viewport(page) : options.viewport;\n const fix = (i, x) => i == 0 ? i : i <= 1 ? i * x : i;\n view$$.setState({\n uid: me,\n originX: fix(viewport.x, page.width) - page.width / 2,\n originY: fix(viewport.y, page.height) - page.height / 2,\n width: fix(viewport.width, page.width),\n height: fix(viewport.height, page.height)\n });\n }\n dispose2.make(() => {\n view.callbacks.on(\"onCameraUpdatedByDevice\", syncView);\n return () => view.callbacks.off(\"onCameraUpdatedByDevice\", syncView);\n });\n syncViewFromRemote(true);\n dispose2.add(context.emitter.on(\"writableChange\", (isWritable) => {\n app.setReadonly(!isWritable);\n }));\n const getOriginScale = () => {\n const { size } = view;\n const { width, height } = getPageSize();\n return Math.min(size.height / height, size.width / width);\n };\n const getScale = () => {\n return view.camera.scale;\n };\n const screenshotCurrentPageAsync = async (_context, _width, _height) => {\n var _a2, _b2;\n (_b2 = (_a2 = room == null ? void 0 : room.calibrationTimestamp) == null ? void 0 : _a2.toString()) != null ? _b2 : Date.now().toString();\n const currentPage = pages[pageIndex$.value];\n if (!currentPage) {\n throw new Error(\"[Presentation]: current page not found\");\n }\n const { width, height, src } = currentPage;\n const img = document.createElement(\"img\");\n img.width = width;\n img.height = height;\n img.crossOrigin = \"Anonymous\";\n await new Promise((resolve) => {\n img.onload = resolve;\n img.src = src;\n });\n _context.drawImage(img, 0, 0, width, height, 0, 0, _width || width, _height || height);\n const currentScenePath = view.focusScenePath;\n if (!currentScenePath) {\n throw new Error(\"[Presentation]: current scene path not found\");\n }\n const windowManger = context.getWindowManager();\n if (windowManger._appliancePlugin) {\n await windowManger._appliancePlugin.screenshotToCanvasAsync(_context, currentScenePath, _width || width, _height || height, {\n centerX: 0,\n centerY: 0,\n scale: _width && _height ? Math.min(_width / width, _height / height) : 1\n });\n } else {\n await view.screenshotToCanvasAsync(_context, currentScenePath, _width || width, _height || height, {\n centerX: 0,\n centerY: 0,\n scale: _width && _height ? Math.min(_width / width, _height / height) : 1\n });\n }\n };\n let scrollbar;\n if (options.useScrollbar) {\n dispose2.make(() => {\n scrollbar = new Scrollbar(app.contentDOM, {\n appId: context.appId,\n getPageSize,\n getOriginScale,\n syncView,\n getWritable: () => context.getIsWritable(),\n scrollbarEventCallback: options.scrollbarEventCallback\n }, view);\n return () => scrollbar == null ? void 0 : scrollbar.destroy();\n });\n }\n const moveCamera = (camera) => {\n if (context.getIsWritable() && scrollbar) {\n if (!scrollbar) {\n throw new Error(\"[Presentation]: moveCamera must be called when appOptions: useScrollbar is true\");\n }\n scrollbar.moveCamera(camera);\n return;\n }\n throw new Error(\"[Presentation]: moveCamera must be called in writable room\");\n };\n context.emitter.on(\"destroy\", () => dispose2());\n const reportProgress = (progress, result) => {\n window.postMessage({ type: \"@netless/_result_save_pdf_\", appId: context.appId, progress, result }, \"*\");\n return result;\n };\n const base64url = async (url) => {\n try {\n const a = new URL(url);\n a.searchParams.set(\"t\", Date.now().toString());\n url = a.toString();\n } catch (e) {\n }\n const data = await fetch(url);\n if (!data.ok)\n throw new Error(`[Presentation]: failed to fetch ${url} - ${await data.text()}`);\n const blob = await data.blob();\n const reader = new FileReader();\n return new Promise((resolve, reject) => {\n reader.onload = () => resolve(reader.result);\n reader.onerror = () => reject(reader.error);\n reader.readAsDataURL(blob);\n });\n };\n const toPdf = async () => {\n var _a2;\n const MAX = 1920;\n const firstPage = pages[0];\n const { width, height } = firstPage;\n let pdfWidth = Math.floor(width), pdfHeight = Math.floor(height);\n if (pdfWidth > MAX) {\n pdfWidth = MAX;\n pdfHeight = Math.floor(height * pdfWidth / width);\n }\n if (pdfHeight > MAX) {\n pdfHeight = MAX;\n pdfWidth = Math.floor(width * pdfHeight / height);\n }\n const scenes = context.getDisplayer().entireScenes()[scenePath];\n const stage_canvas = document.createElement(\"canvas\");\n stage_canvas.width = pdfWidth;\n stage_canvas.height = pdfHeight;\n const stage = stage_canvas.getContext(\"2d\");\n const wb_canvas = document.createElement(\"canvas\");\n wb_canvas.width = pdfWidth;\n wb_canvas.height = pdfHeight;\n const wb = wb_canvas.getContext(\"2d\");\n if (!wb || !stage)\n return reportProgress(100, null);\n const { jsPDF } = await import('jspdf');\n const pdf = new jsPDF({\n format: [firstPage.width, firstPage.height],\n orientation: firstPage.width > firstPage.height ? \"l\" : \"p\",\n compress: true\n });\n for (let index = 0; index < pages.length; ++index) {\n const p = pages[index];\n const { width: width2, height: height2, src } = p;\n const url = await base64url(src);\n const img = document.createElement(\"img\");\n await new Promise((resolve) => {\n img.onload = resolve;\n img.src = url;\n });\n stage.drawImage(img, 0, 0);\n wb.clearRect(0, 0, pdfWidth, pdfHeight);\n const name = (_a2 = p.name) != null ? _a2 : String(index + 1);\n if (scenes.some((scene) => scene.name == name)) {\n const camera = { centerX: 0, centerY: 0, scale: Math.min(wb_canvas.width / width2, wb_canvas.height / height2) };\n const sPath = `${scenePath}/${name}`;\n const windowManger = context.getWindowManager();\n if (windowManger._appliancePlugin) {\n await windowManger._appliancePlugin.screenshotToCanvasAsync(wb, sPath, wb_canvas.width, wb_canvas.height, camera);\n } else {\n await view.screenshotToCanvasAsync(\n wb,\n sPath,\n wb_canvas.width,\n wb_canvas.height,\n camera\n );\n }\n try {\n const wb_url = wb_canvas.toDataURL(\"image/png\");\n const wb_img = document.createElement(\"img\");\n await new Promise((resolve) => {\n wb_img.onload = resolve;\n wb_img.src = wb_url;\n });\n stage.drawImage(wb_img, 0, 0, pdfWidth, pdfHeight);\n } catch (err) {\n console.warn(err);\n }\n }\n const output = stage_canvas.toDataURL(\"image/jpeg\", 0.6);\n if (index > 0)\n pdf.addPage();\n pdf.addImage(output, \"JPEG\", 0, 0, pdfWidth, pdfHeight, \"\", \"FAST\");\n stage.clearRect(0, 0, pdfWidth, pdfHeight);\n const progress = Math.ceil((index + 1) / pages.length * 100);\n if (progress < 100)\n reportProgress(progress, null);\n }\n const data = pdf.output(\"arraybuffer\");\n const title = box.title;\n return reportProgress(100, { pdf: data, title });\n };\n dispose2.add(listen(window, \"message\", (ev) => {\n if (ev.data && ev.data.type == \"@netless/_request_save_pdf_\" && ev.data.appId == context.appId) {\n toPdf().catch((err) => {\n console.warn(err);\n reportProgress(100, null);\n });\n }\n }));\n const setDocsViewReadonly = (bol) => {\n app.setDocsViewReadonly(bol);\n };\n const setReadonly = (bol) => {\n app.setReadonly(bol);\n if (options.goToPageByClick) ;\n if (scrollbar) {\n scrollbar.setReadonly(bol);\n }\n };\n const controller = { app, view, context, jumpPage, prevPage, nextPage, pageState, toPdf, log, setDocsViewReadonly, setReadonly, moveCamera, getOriginScale, getScale, getPageSize, screenshotCurrentPageAsync };\n dispose2.add(listen(window, \"message\", (ev) => {\n if (ev.data === \"@netless/_presentation_\") {\n if (typeof window !== \"undefined\")\n dispose2.make(() => {\n const debug = window._presentation_ || (window._presentation_ = /* @__PURE__ */ new Set());\n debug.add(controller);\n return () => debug.delete(controller);\n });\n console.log(controller);\n }\n }));\n return controller;\n }\n};\nvar AppPresentation = class extends Presentation {\n constructor(config) {\n super(config);\n this.jumpPage = config.jumpPage;\n }\n updateImage() {\n super.updateImage();\n }\n onNewPageIndex(index, origin) {\n if (origin === \"keydown\" && this.box && !this.box.focus)\n return;\n if (this.log)\n this.log(\"[Presentation] user navigate to\", index + 1, `(${origin})`);\n if (0 <= index && index < this.pages.length) {\n this.jumpPage(index);\n } else {\n console.warn(`[Presentation]: page index ${index} out of bounds [0, ${this.pages.length - 1}]`);\n }\n }\n};\nfunction createPresentation(box, pages, jumpPage, pageIndex$, view, thumbnail, useClipView) {\n box.mountStyles(style_default);\n const app = new AppPresentation({ pages, readonly: box.readonly, jumpPage, thumbnail });\n app.box = box;\n box.mountContent(app.contentDOM);\n box.mountFooter(app.footerDOM);\n app.dispose.add(pageIndex$.subscribe((pageIndex) => {\n app.setPageIndex(pageIndex);\n }));\n if (useClipView && view) {\n const onCameraUpdatedEffectForMaskView = (0, import_lodash2.debounce)(() => {\n const { width: pageWidth, height: pageHeight } = app.page() || {};\n if (!pageWidth || !pageHeight) {\n return;\n }\n const { scale } = view.camera;\n const { width, height } = view.size;\n const pageRatioX = Math.round((1 - pageWidth * scale / width) / 2 * 100);\n const pageRatioY = Math.round((1 - pageHeight * scale / height) / 2 * 100);\n app.whiteboardDOM.style.clipPath = `inset(${pageRatioY}% ${pageRatioX}%)`;\n }, 50);\n onCameraUpdatedEffectForMaskView();\n const onCameraUpdatedEffect = () => {\n view.callbacks.on(\"onSizeUpdated\", onCameraUpdatedEffectForMaskView);\n view.callbacks.on(\"onCameraUpdated\", onCameraUpdatedEffectForMaskView);\n return () => {\n view.callbacks.off(\"onCameraUpdated\", onCameraUpdatedEffectForMaskView);\n view.callbacks.off(\"onSizeUpdated\", onCameraUpdatedEffectForMaskView);\n };\n };\n app.dispose.make(onCameraUpdatedEffect);\n }\n return app;\n}\nvar install = (register, options = {}) => {\n let app = NetlessAppPresentation;\n if (options.as) {\n app = Object.assign({}, app, { kind: options.as });\n }\n return register({ kind: app.kind, src: app, appOptions: options.appOptions });\n};\n\n// src/index.ts\nvar version = \"0.1.9\";\n/*! Bundled license information:\n\nlodash/lodash.js:\n (**\n * @license\n * Lodash <https://lodash.com/>\n * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n *)\n*/\n\nexport { NetlessAppPresentation, Presentation, Scrollbar, NetlessAppPresentation as default, install, version };\n//# sourceMappingURL=index.mjs.map\n"],"names":["__create","__defProp","__defProps","__getOwnPropDesc","__getOwnPropDescs","__getOwnPropNames","__getOwnPropSymbols","__getProtoOf","__hasOwnProp","__propIsEnum","__defNormalProp","obj","key","value","__spreadValues","a","b","prop","__spreadProps","__commonJS","cb","mod","__copyProps","to","from","except","desc","__toESM","isNodeMode","target","require_lodash","exports","module","undefined2","VERSION","LARGE_ARRAY_SIZE","CORE_ERROR_TEXT","FUNC_ERROR_TEXT","INVALID_TEMPL_VAR_ERROR_TEXT","HASH_UNDEFINED","MAX_MEMOIZE_SIZE","PLACEHOLDER","CLONE_DEEP_FLAG","CLONE_FLAT_FLAG","CLONE_SYMBOLS_FLAG","COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG","WRAP_BIND_FLAG","WRAP_BIND_KEY_FLAG","WRAP_CURRY_BOUND_FLAG","WRAP_CURRY_FLAG","WRAP_CURRY_RIGHT_FLAG","WRAP_PARTIAL_FLAG","WRAP_PARTIAL_RIGHT_FLAG","WRAP_ARY_FLAG","WRAP_REARG_FLAG","WRAP_FLIP_FLAG","DEFAULT_TRUNC_LENGTH","DEFAULT_TRUNC_OMISSION","HOT_COUNT","HOT_SPAN","LAZY_FILTER_FLAG","LAZY_MAP_FLAG","LAZY_WHILE_FLAG","INFINITY","MAX_SAFE_INTEGER","MAX_INTEGER","NAN","MAX_ARRAY_LENGTH","MAX_ARRAY_INDEX","HALF_MAX_ARRAY_LENGTH","wrapFlags","argsTag","arrayTag","asyncTag","boolTag","dateTag","domExcTag","errorTag","funcTag","genTag","mapTag","numberTag","nullTag","objectTag","promiseTag","proxyTag","regexpTag","setTag","stringTag","symbolTag","undefinedTag","weakMapTag","weakSetTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","reEmptyStringLeading","reEmptyStringMiddle","reEmptyStringTrailing","reEscapedHtml","reUnescapedHtml","reHasEscapedHtml","reHasUnescapedHtml","reEscape","reEvaluate","reInterpolate","reIsDeepProp","reIsPlainProp","rePropName","reRegExpChar","reHasRegExpChar","reTrimStart","reWhitespace","reWrapComment","reWrapDetails","reSplitDetails","reAsciiWord","reForbiddenIdentifierChars","reEscapeChar","reEsTemplate","reFlags","reIsBadHex","reIsBinary","reIsHostCtor","reIsOctal","reIsUint","reLatin","reNoMatch","reUnescapedString","rsAstralRange","rsComboMarksRange","reComboHalfMarksRange","rsComboSymbolsRange","rsComboRange","rsDingbatRange","rsLowerRange","rsMathOpRange","rsNonCharRange","rsPunctuationRange","rsSpaceRange","rsUpperRange","rsVarRange","rsBreakRange","rsApos","rsAstral","rsBreak","rsCombo","rsDigits","rsDingbat","rsLower","rsMisc","rsFitz","rsModifier","rsNonAstral","rsRegional","rsSurrPair","rsUpper","rsZWJ","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","reOptMod","rsOptVar","rsOptJoin","rsOrdLower","rsOrdUpper","rsSeq","rsEmoji","rsSymbol","reApos","reComboMark","reUnicode","reUnicodeWord","reHasUnicode","reHasUnicodeWord","contextProps","templateCounter","typedArrayTags","cloneableTags","deburredLetters","htmlEscapes","htmlUnescapes","stringEscapes","freeParseFloat","freeParseInt","freeGlobal","freeSelf","root","freeExports","freeModule","moduleExports","freeProcess","nodeUtil","types","nodeIsArrayBuffer","nodeIsDate","nodeIsMap","nodeIsRegExp","nodeIsSet","nodeIsTypedArray","apply","func","thisArg","args","arrayAggregator","array","setter","iteratee","accumulator","index","length","arrayEach","arrayEachRight","arrayEvery","predicate","arrayFilter","resIndex","result","arrayIncludes","baseIndexOf","arrayIncludesWith","comparator","arrayMap","arrayPush","values","offset","arrayReduce","initAccum","arrayReduceRight","arraySome","asciiSize","baseProperty","asciiToArray","string","asciiWords","baseFindKey","collection","eachFunc","collection2","baseFindIndex","fromIndex","fromRight","strictIndexOf","baseIsNaN","baseIndexOfWith","baseMean","baseSum","object","basePropertyOf","baseReduce","baseSortBy","comparer","current","baseTimes","n","baseToPairs","props","baseTrim","trimmedEndIndex","baseUnary","baseValues","cacheHas","cache","charsStartIndex","strSymbols","chrSymbols","charsEndIndex","countHolders","placeholder","deburrLetter","escapeHtmlChar","escapeStringChar","chr","getValue","hasUnicode","hasUnicodeWord","iteratorToArray","iterator","data","mapToArray","map","overArg","transform","arg","replaceHolders","setToArray","set","setToPairs","strictLastIndexOf","stringSize","unicodeSize","stringToArray","unicodeToArray","unescapeHtmlChar","unicodeWords","runInContext","runInContext2","context","_","Array2","Date2","Error2","Function2","Math2","Object2","RegExp2","String2","TypeError2","arrayProto","funcProto","objectProto","coreJsData","funcToString","hasOwnProperty","idCounter","maskSrcKey","uid","nativeObjectToString","objectCtorString","oldDash","reIsNative","Buffer2","Symbol2","Uint8Array2","allocUnsafe","getPrototype","objectCreate","propertyIsEnumerable","splice","spreadableSymbol","symIterator","symToStringTag","defineProperty","getNative","ctxClearTimeout","ctxNow","ctxSetTimeout","nativeCeil","nativeFloor","nativeGetSymbols","nativeIsBuffer","nativeIsFinite","nativeJoin","nativeKeys","nativeMax","nativeMin","nativeNow","nativeParseInt","nativeRandom","nativeReverse","DataView","Map2","Promise2","Set2","WeakMap","nativeCreate","metaMap","realNames","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","symbolToString","lodash","isObjectLike","isArray","LazyWrapper","LodashWrapper","wrapperClone","baseCreate","proto","isObject","result2","baseLodash","chainAll","lazyClone","copyArray","lazyReverse","lazyValue","dir","isArr","isRight","arrLength","view","getView","start","end","iteratees","iterLength","takeCount","baseWrapperValue","outer","iterIndex","iteratee2","type","computed","Hash","entries","entry","hashClear","hashDelete","hashGet","hashHas","hashSet","ListCache","listCacheClear","listCacheDelete","assocIndexOf","lastIndex","listCacheGet","listCacheHas","listCacheSet","MapCache","mapCacheClear","mapCacheDelete","getMapData","mapCacheGet","mapCacheHas","mapCacheSet","size3","SetCache","values2","setCacheAdd","setCacheHas","Stack","stackClear","stackDelete","stackGet","stackHas","stackSet","pairs","arrayLikeKeys","inherited","isArg","isArguments","isBuff","isBuffer","isType","isTypedArray","skipIndexes","isIndex","arraySample","baseRandom","arraySampleSize","shuffleSelf","baseClamp","arrayShuffle","assignMergeValue","eq","baseAssignValue","assignValue","objValue","baseAggregator","baseEach","baseAssign","source","copyObject","keys","baseAssignIn","keysIn","baseAt","paths","skip","get","number","lower","upper","baseClone","bitmask","customizer","stack","isDeep","isFlat","isFull","initCloneArray","tag","getTag","isFunc","cloneBuffer","initCloneObject","copySymbolsIn","copySymbols","initCloneByTag","stacked","isSet","subValue","isMap","key2","keysFunc","getAllKeysIn","getAllKeys","baseConforms","baseConformsTo","baseDelay","wait","setTimeout2","baseDifference","includes2","isCommon","valuesLength","valuesIndex","createBaseEach","baseForOwn","baseEachRight","baseForOwnRight","baseEvery","baseExtremum","isSymbol","baseFill","toInteger","toLength","baseFilter","baseFlatten","depth","isStrict","isFlattenable","baseFor","createBaseFor","baseForRight","baseFunctions","isFunction","baseGet","path","castPath","toKey","baseGetAllKeys","symbolsFunc","baseGetTag","getRawTag","objectToString","baseGt","other","baseHas","baseHasIn","baseInRange","baseIntersection","arrays","othLength","othIndex","caches","maxLength","seen","baseInverter","object2","baseInvoke","parent","last","baseIsArguments","baseIsArrayBuffer","baseIsDate","baseIsEqual","baseIsEqualDeep","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","equalObjects","baseIsMap","baseIsMatch","matchData","noCustomizer","srcValue","baseIsNative","isMasked","pattern","baseIsRegExp","baseIsSet","baseIsTypedArray","isLength","baseIteratee","identity","baseMatchesProperty","baseMatches","property","baseKeys","isPrototype","baseKeysIn","nativeKeysIn","isProto","baseLt","baseMap","isArrayLike","getMatchData","matchesStrictComparable","isKey","isStrictComparable","hasIn","baseMerge","srcIndex","baseMergeDeep","newValue","safeGet","mergeFunc","isTyped","isArrayLikeObject","cloneTypedArray","isPlainObject","toPlainObject","baseNth","baseOrderBy","orders","getIteratee","criteria","compareMultiple","basePick","basePickBy","baseSet","basePropertyDeep","basePullAll","indexOf2","basePullAt","indexes","previous","baseUnset","baseRange","step","baseRepeat","baseRest","setToString","overRest","baseSample","baseSampleSize","nested","baseSetData","baseSetToString","constant","baseShuffle","baseSlice","baseSome","baseSortedIndex","retHighest","low","high","mid","baseSortedIndexBy","valIsNaN","valIsNull","valIsSymbol","valIsUndefined","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","setLow","baseSortedUniq","baseToNumber","baseToString","baseUniq","set2","createSet","seenIndex","baseUpdate","updater","baseWhile","isDrop","actions","result3","action","baseXor","baseZipObject","assignFunc","valsLength","castArrayLikeObject","castFunction","stringToPath","toString","castRest","castSlice","clearTimeout2","id","buffer","cloneArrayBuffer","arrayBuffer","cloneDataView","dataView","cloneRegExp","regexp","cloneSymbol","symbol","typedArray","compareAscending","valIsDefined","valIsReflexive","objCriteria","othCriteria","ordersLength","order","composeArgs","partials","holders","isCurried","argsIndex","argsLength","holdersLength","leftIndex","leftLength","rangeLength","isUncurried","composeArgsRight","holdersIndex","rightIndex","rightLength","isNew","getSymbols","getSymbolsIn","createAggregator","initializer","createAssigner","assigner","sources","guard","isIterateeCall","iterable","createBind","isBind","Ctor","createCtor","wrapper","fn","createCaseFirst","methodName","trailing","createCompounder","callback","words","deburr","thisBinding","createCurry","arity","getHolder","createRecurry","createHybrid","createFind","findIndexFunc","createFlow","flatRest","funcs","prereq","getFuncName","funcName","getData2","isLaziable","index2","partialsRight","holdersRight","argPos","ary2","isAry","isBindKey","isFlip","holdersCount","newHolders","reorder","createInverter","toIteratee","createMathOperation","operator","defaultValue","createOver","arrayFunc","createPadding","chars","charsLength","createPartial","createRange","toFinite","createRelationalOperation","toNumber","wrapFunc","isCurry","newHoldersRight","newPartials","newPartialsRight","newData","setData2","setWrapToString","createRound","precision","pair","noop2","createToPairs","createWrap","mergeData","customDefaultsAssignIn","customDefaultsMerge","customOmitClone","isPartial","arrStacked","othStacked","arrValue","othValue","compared","othValue2","convert","objProps","objLength","othProps","objStacked","skipCtor","objCtor","othCtor","flatten","otherFunc","map2","isKeyable","isOwn","unmasked","stubArray","ctorString","transforms","getWrapDetails","match","hasPath","hasFunc","insertWrapDetails","details","isMaskable","stubFalse","memoizeCapped","memoize","srcBitmask","newBitmask","isCombo","transform2","otherArgs","oldArray","shortOut","reference","updateWrapDetails","count","lastCalled","stamp","remaining","rand","quote","subString","chunk","compact","concat","difference","differenceBy","differenceWith","drop","dropRight","dropRightWhile","dropWhile","fill","findIndex","findLastIndex","flattenDeep","flattenDepth","fromPairs","head","indexOf","initial","intersection","mapped","intersectionBy","intersectionWith","join","separator","lastIndexOf","nth","pull","pullAll","pullAllBy","pullAllWith","pullAt","remove","reverse","slice","sortedIndex","sortedIndexBy","sortedIndexOf","sortedLastIndex","sortedLastIndexBy","sortedLastIndexOf","sortedUniq","sortedUniqBy","tail","take","takeRight","takeRightWhile","takeWhile","union","unionBy","unionWith","uniq","uniqBy","uniqWith","unzip","group","unzipWith","without","xor","xorBy","xorWith","zip","zipObject","zipObjectDeep","zipWith","chain","tap","interceptor","thru","wrapperAt","wrapperChain","wrapperCommit","wrapperNext","toArray2","done","wrapperToIterator","wrapperPlant","parent2","clone2","wrapperReverse","wrapped","wrapperValue","countBy","every","filter","find","findLast","flatMap","flatMapDeep","flatMapDepth","forEach","forEachRight","groupBy","includes","isString","invokeMap","keyBy","orderBy","partition","reduce","reduceRight","reject","negate","sample","sampleSize","shuffle","size","some","sortBy","now","after","ary","before","bind","bindKey","curry","curryRight","debounce3","options","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","invokeFunc","time","leadingEdge","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","timeWaiting","shouldInvoke","trailingEdge","cancel","flush","debounced","isInvoking","defer","delay","flip","resolver","memoized","once","overArgs","funcsLength","partial","partialRight","rearg","rest","spread","throttle","unary","wrap","castArray","clone","cloneWith","cloneDeep","cloneDeepWith","conformsTo","gt","gte","isArrayBuffer","isBoolean","isDate","isElement","isEmpty","isEqual","isEqualWith","isError","isFinite","isInteger","isMatch","isMatchWith","isNaN","isNumber2","isNative","isNull","isNil","isRegExp","isSafeInteger","isUndefined","isWeakMap","isWeakSet","lt","lte","sign","remainder","isBinary","toSafeInteger","assign","assignIn","assignInWith","assignWith","at","create","prototype","properties","defaults","propsIndex","propsLength","defaultsDeep","mergeWith","findKey","findLastKey","forIn","forInRight","forOwn","forOwnRight","functions","functionsIn","has","invert","invertBy","invoke","mapKeys","mapValues","merge","omit","omitBy","pickBy","pick","setWith","toPairs","toPairsIn","isArrLike","unset","update","updateWith","valuesIn","clamp","inRange","random","floating","temp","camelCase","word","capitalize","upperFirst","endsWith","position","escape","escapeRegExp","kebabCase","lowerCase","lowerFirst","pad","strLength","padEnd","padStart","parseInt2","radix","repeat","replace","snakeCase","split","limit","startCase","startsWith","template","settings","imports","importsKeys","importsValues","isEscaping","isEvaluating","interpolate","reDelimiters","sourceURL","escapeValue","interpolateValue","esTemplateValue","evaluateValue","variable","attempt","toLower","toUpper","trim","trimEnd","trimStart","truncate","omission","substring","newEnd","unescape","upperCase","e","bindAll","methodNames","cond","conforms","defaultTo","flow","flowRight","matches","matchesProperty","method","methodOf","mixin","chain2","noConflict","nthArg","over","overEvery","overSome","propertyOf","range","rangeRight","stubObject","stubString","stubTrue","times","toPath","uniqueId","prefix","add2","augend","addend","ceil","divide","dividend","divisor","floor","max","maxBy","mean","meanBy","min","minBy","multiply","multiplier","multiplicand","round","subtract","minuend","subtrahend","sum","sumBy","isFilter","takeName","dropName","checkIteratee","isTaker","lodashFunc","retUnwrapped","isLazy","useLazy","value2","isHybrid","isUnwrapped","onlyLazy","chainName","isFn","isDisposable","dispose","disposable","isAbortable","disposableStore","disposables","disposableStore2","_a","_b","size2","has2","add","make3","remove3","flush2","_addOne","executor","addEventListener","listener","listen","runningOnBrowser","isBot","isHiDpi","defaultSettings","getExtendedSettings","customSettings","createInstance","classObj","event","eventString","instance","autoInitialize","i","optionsItem","SRC","SRCSET","SIZES","POSTER","ORIGINALS","DATA","statusLoading","statusLoaded","statusApplied","statusEntered","statusError","statusNative","dataPrefix","statusDataName","getData","element","attribute","setData","attrName","getStatus","setStatus","status","resetStatus","hasEmptyStatus","hasStatusLoading","hasStatusError","hasStatusNative","statusesAfterLoading","hadStartedLoading","safeCallback","arg1","arg2","arg3","addClass","className","removeClass","addTempImage","deleteTempImage","getTempImage","unobserve","observer","resetObserver","unobserveEntered","updateLoadingCount","delta","decreaseToLoadCount","setToLoadCount","isSomethingLoading","haveElementsToLoad","getSourceTags","parentTag","sourceTags","childTag","forEachPictureSource","forEachVideoSource","attrsSrc","attrsSrcPoster","attrsSrcSrcsetSizes","attrsData","hasOriginalAttrs","getOriginalAttrs","deleteOriginalAttrs","setOriginalsObject","attributes","originals","saveOriginalBackgroundStyle","setOrResetAttribute","restoreOriginalAttrs","restoreOriginalBgImage","manageApplied","manageLoading","setAttributeIfValue","setImageAttributes","setSourcesImg","imgEl","sourceTag","setSourcesIframe","iframe","setSourcesVideo","videoEl","sourceEl","setSourcesObject","setBackground","bg1xValue","bgHiDpiValue","bgDataValue","setMultiBackground","setImgsetBackground","bgImgSetDataValue","imgSetValues","bgImageValues","setSourcesFunctions","setSourcesNative","setSourcesFunction","setSources","elementsWithLoadEvent","hasLoadEvent","checkFinish","addEventListener2","eventName","handler","removeEventListener","hasEventListeners","addEventListeners","loadHandler2","errorHandler2","loadEventName","removeEventListeners","eventListeners","doneHandler","loadHandler","goingNative","errorHandler","addOneShotEventListeners","elementToListenTo","loadBackground","loadRegular","load","loadNative","removeImageAttributes","resetSourcesImg","restoreImg","restoreVideo","restoreIframe","iframeEl","restoreObject","objectEl","restoreFunctions","restoreAttributes","restoreFunction","resetClasses","restore","cancelLoading","onEnter","dontLoad","onExit","tagsWithNativeLazy","shouldUseNative","loadAllNative","elements","isIntersecting","getObserverSettings","intersectionHandler","observeElements","updateObserver","elementsToObserve","setObserver","toArray","nodeSet","queryElements","excludeManagedElements","hasError","filterErrorElements","getElementsToLoad","retryLazyLoad","setOnlineCheck","resetOnlineCheck","LazyLoad","givenNodeset","elementsToLoad","sidebarSVG","namespace","NS","$svg","$path","arrowLeftSVG","arrowRightSVG","_Preload","pages","force","willLoad","curlink","linkDom","excludeIndex","link","callBack","timeout","resolve","Preload","Presentation","config","readonly","_a2","previewMask","ev","c_previewPage","c_previewPageName","page","previewSRC","previewPage","img","name","pageIndex","btnSidebar","pageJumps","btnPageBack","btnPageNext","pageNumber","totalPage","dom","showPreview","previewPageDOM","_origin","src","url","err","el","tagName","style_default","noop","safe_not_equal","readable","stop","subscribers","new_value","run","subscribe","reaction","dispose2","makeDraggable","currentDragger","originalMouseX","originalMouseY","onDragEnd","onDrag","onDragStart","direction","drag","state","transformedDragX","transformedDragY","bindDrag","stopDrag","removeEventListener2","destroy","import_lodash","Scrollbar","container","option","scale","centerX","centerY","originScale","pageWidth","pageHeight","viewWidth","viewHeight","originScaleX","originScaleY","ratioX","ratioY","scrollX","scrollY","camera","transformedDrag","x","minX","maxX","y","minY","maxY","cacheCamera","_camera","newCenterX","newCenterY","newScale","bol","ratio","scrollWidth","scrollHeight","import_lodash2","emptySceneName","ppt2page","ppt","createLogger","room","scenesEqual","scenes1","scenes2","scene","_c","_d","_e","_f","scene2","NetlessAppPresentation","scenePath","maxCameraScale","log","view$$","_addScenePathListener","windowManger","getPageIndex","view2","focusScenePath","_pageIndex","pageIndex$","payload","appId","redirectResolve","room2","scenes","_scenes","p","syncPage","me","throttleSyncView","logger","jumpPage","prevPage","nextPage","pageState","scaleDocsToFit","width","height","app","maxScale","minScale","syncViewFromRemote","syncView","fixedW","fixedH","w","h","animate","originX","originY","getPageSize","box","createPresentation","goToPageByClick","_b2","_c2","currentApplianceName","viewport","fix","isWritable","getOriginScale","getScale","screenshotCurrentPageAsync","_context","_width","_height","currentPage","currentScenePath","scrollbar","moveCamera","reportProgress","progress","base64url","blob","reader","toPdf","firstPage","pdfWidth","pdfHeight","stage_canvas","stage","wb_canvas","wb","jsPDF","_interopNamespace","pdf","width2","height2","sPath","wb_url","wb_img","output","title","controller","debug","AppPresentation","origin","thumbnail","useClipView","onCameraUpdatedEffectForMaskView","pageRatioX","pageRatioY","onCameraUpdatedEffect","install","register","version"],"mappings":"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CV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,KA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"}
1
+ {"version":3,"file":"app-presentation.js","sources":["../node_modules/.pnpm/@netless+app-presentation@0.1.10_jspdf@2.5.2/node_modules/@netless/app-presentation/dist/index.mjs"],"sourcesContent":["var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\n\n// node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObject.js\nvar require_isObject = __commonJS({\n \"node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObject.js\"(exports, module) {\n function isObject(value) {\n var type = typeof value;\n return value != null && (type == \"object\" || type == \"function\");\n }\n module.exports = isObject;\n }\n});\n\n// node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_freeGlobal.js\nvar require_freeGlobal = __commonJS({\n \"node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_freeGlobal.js\"(exports, module) {\n var freeGlobal = typeof global == \"object\" && global && global.Object === Object && global;\n module.exports = freeGlobal;\n }\n});\n\n// node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_root.js\nvar require_root = __commonJS({\n \"node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_root.js\"(exports, module) {\n var freeGlobal = require_freeGlobal();\n var freeSelf = typeof self == \"object\" && self && self.Object === Object && self;\n var root = freeGlobal || freeSelf || Function(\"return this\")();\n module.exports = root;\n }\n});\n\n// node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/now.js\nvar require_now = __commonJS({\n \"node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/now.js\"(exports, module) {\n var root = require_root();\n var now = function() {\n return root.Date.now();\n };\n module.exports = now;\n }\n});\n\n// node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_trimmedEndIndex.js\nvar require_trimmedEndIndex = __commonJS({\n \"node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_trimmedEndIndex.js\"(exports, module) {\n var reWhitespace = /\\s/;\n function trimmedEndIndex(string) {\n var index = string.length;\n while (index-- && reWhitespace.test(string.charAt(index))) {\n }\n return index;\n }\n module.exports = trimmedEndIndex;\n }\n});\n\n// node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseTrim.js\nvar require_baseTrim = __commonJS({\n \"node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseTrim.js\"(exports, module) {\n var trimmedEndIndex = require_trimmedEndIndex();\n var reTrimStart = /^\\s+/;\n function baseTrim(string) {\n return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, \"\") : string;\n }\n module.exports = baseTrim;\n }\n});\n\n// node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Symbol.js\nvar require_Symbol = __commonJS({\n \"node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Symbol.js\"(exports, module) {\n var root = require_root();\n var Symbol2 = root.Symbol;\n module.exports = Symbol2;\n }\n});\n\n// node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getRawTag.js\nvar require_getRawTag = __commonJS({\n \"node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getRawTag.js\"(exports, module) {\n var Symbol2 = require_Symbol();\n var objectProto = Object.prototype;\n var hasOwnProperty = objectProto.hasOwnProperty;\n var nativeObjectToString = objectProto.toString;\n var symToStringTag = Symbol2 ? Symbol2.toStringTag : void 0;\n function getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag];\n try {\n value[symToStringTag] = void 0;\n var unmasked = true;\n } catch (e) {\n }\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n }\n module.exports = getRawTag;\n }\n});\n\n// node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_objectToString.js\nvar require_objectToString = __commonJS({\n \"node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_objectToString.js\"(exports, module) {\n var objectProto = Object.prototype;\n var nativeObjectToString = objectProto.toString;\n function objectToString(value) {\n return nativeObjectToString.call(value);\n }\n module.exports = objectToString;\n }\n});\n\n// node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGetTag.js\nvar require_baseGetTag = __commonJS({\n \"node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGetTag.js\"(exports, module) {\n var Symbol2 = require_Symbol();\n var getRawTag = require_getRawTag();\n var objectToString = require_objectToString();\n var nullTag = \"[object Null]\";\n var undefinedTag = \"[object Undefined]\";\n var symToStringTag = Symbol2 ? Symbol2.toStringTag : void 0;\n function baseGetTag(value) {\n if (value == null) {\n return value === void 0 ? undefinedTag : nullTag;\n }\n return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);\n }\n module.exports = baseGetTag;\n }\n});\n\n// node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObjectLike.js\nvar require_isObjectLike = __commonJS({\n \"node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObjectLike.js\"(exports, module) {\n function isObjectLike(value) {\n return value != null && typeof value == \"object\";\n }\n module.exports = isObjectLike;\n }\n});\n\n// node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isSymbol.js\nvar require_isSymbol = __commonJS({\n \"node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isSymbol.js\"(exports, module) {\n var baseGetTag = require_baseGetTag();\n var isObjectLike = require_isObjectLike();\n var symbolTag = \"[object Symbol]\";\n function isSymbol(value) {\n return typeof value == \"symbol\" || isObjectLike(value) && baseGetTag(value) == symbolTag;\n }\n module.exports = isSymbol;\n }\n});\n\n// node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toNumber.js\nvar require_toNumber = __commonJS({\n \"node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toNumber.js\"(exports, module) {\n var baseTrim = require_baseTrim();\n var isObject = require_isObject();\n var isSymbol = require_isSymbol();\n var NAN = 0 / 0;\n var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n var reIsBinary = /^0b[01]+$/i;\n var reIsOctal = /^0o[0-7]+$/i;\n var freeParseInt = parseInt;\n function toNumber(value) {\n if (typeof value == \"number\") {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == \"function\" ? value.valueOf() : value;\n value = isObject(other) ? other + \"\" : other;\n }\n if (typeof value != \"string\") {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;\n }\n module.exports = toNumber;\n }\n});\n\n// node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/debounce.js\nvar require_debounce = __commonJS({\n \"node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/debounce.js\"(exports, module) {\n var isObject = require_isObject();\n var now = require_now();\n var toNumber = require_toNumber();\n var FUNC_ERROR_TEXT = \"Expected a function\";\n var nativeMax = Math.max;\n var nativeMin = Math.min;\n function debounce3(func, wait, options) {\n var lastArgs, lastThis, maxWait, result, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true;\n if (typeof func != \"function\") {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = \"maxWait\" in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = \"trailing\" in options ? !!options.trailing : trailing;\n }\n function invokeFunc(time) {\n var args = lastArgs, thisArg = lastThis;\n lastArgs = lastThis = void 0;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n function leadingEdge(time) {\n lastInvokeTime = time;\n timerId = setTimeout(timerExpired, wait);\n return leading ? invokeFunc(time) : result;\n }\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, timeWaiting = wait - timeSinceLastCall;\n return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;\n }\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime;\n return lastCallTime === void 0 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n }\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n function trailingEdge(time) {\n timerId = void 0;\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = void 0;\n return result;\n }\n function cancel() {\n if (timerId !== void 0) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = void 0;\n }\n function flush() {\n return timerId === void 0 ? result : trailingEdge(now());\n }\n function debounced() {\n var time = now(), isInvoking = shouldInvoke(time);\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n if (isInvoking) {\n if (timerId === void 0) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === void 0) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n }\n module.exports = debounce3;\n }\n});\n\n// node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isNumber.js\nvar require_isNumber = __commonJS({\n \"node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isNumber.js\"(exports, module) {\n var baseGetTag = require_baseGetTag();\n var isObjectLike = require_isObjectLike();\n var numberTag = \"[object Number]\";\n function isNumber2(value) {\n return typeof value == \"number\" || isObjectLike(value) && baseGetTag(value) == numberTag;\n }\n module.exports = isNumber2;\n }\n});\n\n// node_modules/.pnpm/@wopjs+disposable@0.1.19/node_modules/@wopjs/disposable/dist/index.mjs\nvar isFn = (value) => !!(value && value.constructor && value.call && value.apply);\nvar isDisposable = (value) => isFn(value) || isFn(value == null ? void 0 : value.dispose);\nfunction dispose(disposable) {\n try {\n if (disposable) {\n if (isFn(disposable.dispose)) {\n disposable.dispose();\n } else if (isFn(disposable)) {\n disposable();\n }\n }\n } catch (e) {\n console.error(e);\n }\n}\nvar isAbortable = (disposable) => isDisposable(disposable) && isFn(disposable.abortable);\nfunction disposableStore(disposables) {\n function disposableStore2() {\n var _a, _b;\n if (disposableStore2._i)\n return;\n disposableStore2._i = 1;\n (_a = disposableStore2._d) == null ? void 0 : _a.forEach(dispose);\n (_b = disposableStore2._d) == null ? void 0 : _b.clear();\n disposableStore2._i = 0;\n }\n disposableStore2._i = 0;\n disposableStore2.dispose = disposableStore2;\n disposableStore2.size = size2;\n disposableStore2.has = has2;\n disposableStore2.add = add;\n disposableStore2.make = make3;\n disposableStore2.remove = remove3;\n disposableStore2.flush = flush2;\n return disposableStore2;\n}\nfunction _addOne(disposable) {\n var _a, _b;\n if (!((_a = this._d) == null ? void 0 : _a.has(disposable))) {\n ((_b = this._d) != null ? _b : this._d = /* @__PURE__ */ new Set()).add(disposable);\n if (isAbortable(disposable)) {\n disposable.abortable(() => this.remove(disposable));\n }\n }\n}\nfunction add(disposables) {\n Array.isArray(disposables) ? disposables.forEach(_addOne, this) : _addOne.call(this, disposables);\n return disposables;\n}\nfunction flush2(disposable) {\n if (disposable) {\n if (this.remove(disposable)) {\n dispose(disposable);\n }\n } else {\n this.dispose();\n }\n}\nfunction has2(disposable) {\n var _a;\n return ((_a = this._d) == null ? void 0 : _a.has(disposable)) || false;\n}\nfunction make3(executor) {\n const disposable = executor();\n return disposable && this.add(disposable);\n}\nfunction remove3(disposable) {\n var _a;\n return ((_a = this._d) == null ? void 0 : _a.delete(disposable)) || false;\n}\nfunction size2() {\n var _a;\n return ((_a = this._d) == null ? void 0 : _a.size) || 0;\n}\n\n// node_modules/.pnpm/@wopjs+dom@0.1.3/node_modules/@wopjs/dom/dist/index.js\nfunction addEventListener(target, type, listener, options) {\n target.addEventListener(type, listener, options);\n return () => target.removeEventListener(type, listener, options);\n}\nvar listen = addEventListener;\n\n// node_modules/.pnpm/vanilla-lazyload@18.0.0/node_modules/vanilla-lazyload/dist/lazyload.esm.js\nvar runningOnBrowser = typeof window !== \"undefined\";\nvar isBot = runningOnBrowser && !(\"onscroll\" in window) || typeof navigator !== \"undefined\" && /(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent);\nvar isHiDpi = runningOnBrowser && window.devicePixelRatio > 1;\nvar defaultSettings = {\n elements_selector: \".lazy\",\n container: isBot || runningOnBrowser ? document : null,\n threshold: 300,\n thresholds: null,\n data_src: \"src\",\n data_srcset: \"srcset\",\n data_sizes: \"sizes\",\n data_bg: \"bg\",\n data_bg_hidpi: \"bg-hidpi\",\n data_bg_multi: \"bg-multi\",\n data_bg_multi_hidpi: \"bg-multi-hidpi\",\n data_bg_set: \"bg-set\",\n data_poster: \"poster\",\n class_applied: \"applied\",\n class_loading: \"loading\",\n class_loaded: \"loaded\",\n class_error: \"error\",\n class_entered: \"entered\",\n class_exited: \"exited\",\n unobserve_completed: true,\n unobserve_entered: false,\n cancel_on_exit: true,\n callback_enter: null,\n callback_exit: null,\n callback_applied: null,\n callback_loading: null,\n callback_loaded: null,\n callback_error: null,\n callback_finish: null,\n callback_cancel: null,\n use_native: false,\n restore_on_error: false\n};\nvar getExtendedSettings = (customSettings) => {\n return Object.assign({}, defaultSettings, customSettings);\n};\nvar createInstance = function(classObj, options) {\n let event;\n const eventString = \"LazyLoad::Initialized\";\n const instance = new classObj(options);\n try {\n event = new CustomEvent(eventString, { detail: { instance } });\n } catch (err) {\n event = document.createEvent(\"CustomEvent\");\n event.initCustomEvent(eventString, false, false, { instance });\n }\n window.dispatchEvent(event);\n};\nvar autoInitialize = (classObj, options) => {\n if (!options) {\n return;\n }\n if (!options.length) {\n createInstance(classObj, options);\n } else {\n for (let i = 0, optionsItem; optionsItem = options[i]; i += 1) {\n createInstance(classObj, optionsItem);\n }\n }\n};\nvar SRC = \"src\";\nvar SRCSET = \"srcset\";\nvar SIZES = \"sizes\";\nvar POSTER = \"poster\";\nvar ORIGINALS = \"llOriginalAttrs\";\nvar DATA = \"data\";\nvar statusLoading = \"loading\";\nvar statusLoaded = \"loaded\";\nvar statusApplied = \"applied\";\nvar statusEntered = \"entered\";\nvar statusError = \"error\";\nvar statusNative = \"native\";\nvar dataPrefix = \"data-\";\nvar statusDataName = \"ll-status\";\nvar getData = (element, attribute) => {\n return element.getAttribute(dataPrefix + attribute);\n};\nvar setData = (element, attribute, value) => {\n const attrName = dataPrefix + attribute;\n if (value === null) {\n element.removeAttribute(attrName);\n return;\n }\n element.setAttribute(attrName, value);\n};\nvar getStatus = (element) => getData(element, statusDataName);\nvar setStatus = (element, status) => setData(element, statusDataName, status);\nvar resetStatus = (element) => setStatus(element, null);\nvar hasEmptyStatus = (element) => getStatus(element) === null;\nvar hasStatusLoading = (element) => getStatus(element) === statusLoading;\nvar hasStatusError = (element) => getStatus(element) === statusError;\nvar hasStatusNative = (element) => getStatus(element) === statusNative;\nvar statusesAfterLoading = [statusLoading, statusLoaded, statusApplied, statusError];\nvar hadStartedLoading = (element) => statusesAfterLoading.indexOf(getStatus(element)) >= 0;\nvar safeCallback = (callback, arg1, arg2, arg3) => {\n if (!callback || typeof callback !== \"function\") {\n return;\n }\n if (arg3 !== void 0) {\n callback(arg1, arg2, arg3);\n return;\n }\n if (arg2 !== void 0) {\n callback(arg1, arg2);\n return;\n }\n callback(arg1);\n};\nvar addClass = (element, className) => {\n if (!runningOnBrowser) {\n return;\n }\n if (className === \"\") {\n return;\n }\n element.classList.add(className);\n};\nvar removeClass = (element, className) => {\n if (!runningOnBrowser) {\n return;\n }\n if (className === \"\") {\n return;\n }\n element.classList.remove(className);\n};\nvar addTempImage = (element) => {\n element.llTempImage = document.createElement(\"IMG\");\n};\nvar deleteTempImage = (element) => {\n delete element.llTempImage;\n};\nvar getTempImage = (element) => element.llTempImage;\nvar unobserve = (element, instance) => {\n if (!instance)\n return;\n const observer = instance._observer;\n if (!observer)\n return;\n observer.unobserve(element);\n};\nvar resetObserver = (observer) => {\n observer.disconnect();\n};\nvar unobserveEntered = (element, settings, instance) => {\n if (settings.unobserve_entered)\n unobserve(element, instance);\n};\nvar updateLoadingCount = (instance, delta) => {\n if (!instance)\n return;\n instance.loadingCount += delta;\n};\nvar decreaseToLoadCount = (instance) => {\n if (!instance)\n return;\n instance.toLoadCount -= 1;\n};\nvar setToLoadCount = (instance, value) => {\n if (!instance)\n return;\n instance.toLoadCount = value;\n};\nvar isSomethingLoading = (instance) => instance.loadingCount > 0;\nvar haveElementsToLoad = (instance) => instance.toLoadCount > 0;\nvar getSourceTags = (parentTag) => {\n let sourceTags = [];\n for (let i = 0, childTag; childTag = parentTag.children[i]; i += 1) {\n if (childTag.tagName === \"SOURCE\") {\n sourceTags.push(childTag);\n }\n }\n return sourceTags;\n};\nvar forEachPictureSource = (element, fn) => {\n const parent = element.parentNode;\n if (!parent || parent.tagName !== \"PICTURE\") {\n return;\n }\n let sourceTags = getSourceTags(parent);\n sourceTags.forEach(fn);\n};\nvar forEachVideoSource = (element, fn) => {\n let sourceTags = getSourceTags(element);\n sourceTags.forEach(fn);\n};\nvar attrsSrc = [SRC];\nvar attrsSrcPoster = [SRC, POSTER];\nvar attrsSrcSrcsetSizes = [SRC, SRCSET, SIZES];\nvar attrsData = [DATA];\nvar hasOriginalAttrs = (element) => !!element[ORIGINALS];\nvar getOriginalAttrs = (element) => element[ORIGINALS];\nvar deleteOriginalAttrs = (element) => delete element[ORIGINALS];\nvar setOriginalsObject = (element, attributes) => {\n if (hasOriginalAttrs(element)) {\n return;\n }\n const originals = {};\n attributes.forEach((attribute) => {\n originals[attribute] = element.getAttribute(attribute);\n });\n element[ORIGINALS] = originals;\n};\nvar saveOriginalBackgroundStyle = (element) => {\n if (hasOriginalAttrs(element)) {\n return;\n }\n element[ORIGINALS] = { backgroundImage: element.style.backgroundImage };\n};\nvar setOrResetAttribute = (element, attrName, value) => {\n if (!value) {\n element.removeAttribute(attrName);\n return;\n }\n element.setAttribute(attrName, value);\n};\nvar restoreOriginalAttrs = (element, attributes) => {\n if (!hasOriginalAttrs(element)) {\n return;\n }\n const originals = getOriginalAttrs(element);\n attributes.forEach((attribute) => {\n setOrResetAttribute(element, attribute, originals[attribute]);\n });\n};\nvar restoreOriginalBgImage = (element) => {\n if (!hasOriginalAttrs(element)) {\n return;\n }\n const originals = getOriginalAttrs(element);\n element.style.backgroundImage = originals.backgroundImage;\n};\nvar manageApplied = (element, settings, instance) => {\n addClass(element, settings.class_applied);\n setStatus(element, statusApplied);\n if (!instance)\n return;\n if (settings.unobserve_completed) {\n unobserve(element, settings);\n }\n safeCallback(settings.callback_applied, element, instance);\n};\nvar manageLoading = (element, settings, instance) => {\n addClass(element, settings.class_loading);\n setStatus(element, statusLoading);\n if (!instance)\n return;\n updateLoadingCount(instance, 1);\n safeCallback(settings.callback_loading, element, instance);\n};\nvar setAttributeIfValue = (element, attrName, value) => {\n if (!value) {\n return;\n }\n element.setAttribute(attrName, value);\n};\nvar setImageAttributes = (element, settings) => {\n setAttributeIfValue(element, SIZES, getData(element, settings.data_sizes));\n setAttributeIfValue(element, SRCSET, getData(element, settings.data_srcset));\n setAttributeIfValue(element, SRC, getData(element, settings.data_src));\n};\nvar setSourcesImg = (imgEl, settings) => {\n forEachPictureSource(imgEl, (sourceTag) => {\n setOriginalsObject(sourceTag, attrsSrcSrcsetSizes);\n setImageAttributes(sourceTag, settings);\n });\n setOriginalsObject(imgEl, attrsSrcSrcsetSizes);\n setImageAttributes(imgEl, settings);\n};\nvar setSourcesIframe = (iframe, settings) => {\n setOriginalsObject(iframe, attrsSrc);\n setAttributeIfValue(iframe, SRC, getData(iframe, settings.data_src));\n};\nvar setSourcesVideo = (videoEl, settings) => {\n forEachVideoSource(videoEl, (sourceEl) => {\n setOriginalsObject(sourceEl, attrsSrc);\n setAttributeIfValue(sourceEl, SRC, getData(sourceEl, settings.data_src));\n });\n setOriginalsObject(videoEl, attrsSrcPoster);\n setAttributeIfValue(videoEl, POSTER, getData(videoEl, settings.data_poster));\n setAttributeIfValue(videoEl, SRC, getData(videoEl, settings.data_src));\n videoEl.load();\n};\nvar setSourcesObject = (object, settings) => {\n setOriginalsObject(object, attrsData);\n setAttributeIfValue(object, DATA, getData(object, settings.data_src));\n};\nvar setBackground = (element, settings, instance) => {\n const bg1xValue = getData(element, settings.data_bg);\n const bgHiDpiValue = getData(element, settings.data_bg_hidpi);\n const bgDataValue = isHiDpi && bgHiDpiValue ? bgHiDpiValue : bg1xValue;\n if (!bgDataValue)\n return;\n element.style.backgroundImage = `url(\"${bgDataValue}\")`;\n getTempImage(element).setAttribute(SRC, bgDataValue);\n manageLoading(element, settings, instance);\n};\nvar setMultiBackground = (element, settings, instance) => {\n const bg1xValue = getData(element, settings.data_bg_multi);\n const bgHiDpiValue = getData(element, settings.data_bg_multi_hidpi);\n const bgDataValue = isHiDpi && bgHiDpiValue ? bgHiDpiValue : bg1xValue;\n if (!bgDataValue) {\n return;\n }\n element.style.backgroundImage = bgDataValue;\n manageApplied(element, settings, instance);\n};\nvar setImgsetBackground = (element, settings, instance) => {\n const bgImgSetDataValue = getData(element, settings.data_bg_set);\n if (!bgImgSetDataValue) {\n return;\n }\n const imgSetValues = bgImgSetDataValue.split(\"|\");\n let bgImageValues = imgSetValues.map((value) => `image-set(${value})`);\n element.style.backgroundImage = bgImageValues.join();\n if (element.style.backgroundImage === \"\") {\n bgImageValues = imgSetValues.map((value) => `-webkit-image-set(${value})`);\n element.style.backgroundImage = bgImageValues.join();\n }\n manageApplied(element, settings, instance);\n};\nvar setSourcesFunctions = {\n IMG: setSourcesImg,\n IFRAME: setSourcesIframe,\n VIDEO: setSourcesVideo,\n OBJECT: setSourcesObject\n};\nvar setSourcesNative = (element, settings) => {\n const setSourcesFunction = setSourcesFunctions[element.tagName];\n if (!setSourcesFunction) {\n return;\n }\n setSourcesFunction(element, settings);\n};\nvar setSources = (element, settings, instance) => {\n const setSourcesFunction = setSourcesFunctions[element.tagName];\n if (!setSourcesFunction) {\n return;\n }\n setSourcesFunction(element, settings);\n manageLoading(element, settings, instance);\n};\nvar elementsWithLoadEvent = [\"IMG\", \"IFRAME\", \"VIDEO\", \"OBJECT\"];\nvar hasLoadEvent = (element) => elementsWithLoadEvent.indexOf(element.tagName) > -1;\nvar checkFinish = (settings, instance) => {\n if (instance && !isSomethingLoading(instance) && !haveElementsToLoad(instance)) {\n safeCallback(settings.callback_finish, instance);\n }\n};\nvar addEventListener2 = (element, eventName, handler) => {\n element.addEventListener(eventName, handler);\n element.llEvLisnrs[eventName] = handler;\n};\nvar removeEventListener = (element, eventName, handler) => {\n element.removeEventListener(eventName, handler);\n};\nvar hasEventListeners = (element) => {\n return !!element.llEvLisnrs;\n};\nvar addEventListeners = (element, loadHandler2, errorHandler2) => {\n if (!hasEventListeners(element))\n element.llEvLisnrs = {};\n const loadEventName = element.tagName === \"VIDEO\" ? \"loadeddata\" : \"load\";\n addEventListener2(element, loadEventName, loadHandler2);\n addEventListener2(element, \"error\", errorHandler2);\n};\nvar removeEventListeners = (element) => {\n if (!hasEventListeners(element)) {\n return;\n }\n const eventListeners = element.llEvLisnrs;\n for (let eventName in eventListeners) {\n const handler = eventListeners[eventName];\n removeEventListener(element, eventName, handler);\n }\n delete element.llEvLisnrs;\n};\nvar doneHandler = (element, settings, instance) => {\n deleteTempImage(element);\n updateLoadingCount(instance, -1);\n decreaseToLoadCount(instance);\n removeClass(element, settings.class_loading);\n if (settings.unobserve_completed) {\n unobserve(element, instance);\n }\n};\nvar loadHandler = (event, element, settings, instance) => {\n const goingNative = hasStatusNative(element);\n doneHandler(element, settings, instance);\n addClass(element, settings.class_loaded);\n setStatus(element, statusLoaded);\n safeCallback(settings.callback_loaded, element, instance);\n if (!goingNative)\n checkFinish(settings, instance);\n};\nvar errorHandler = (event, element, settings, instance) => {\n const goingNative = hasStatusNative(element);\n doneHandler(element, settings, instance);\n addClass(element, settings.class_error);\n setStatus(element, statusError);\n safeCallback(settings.callback_error, element, instance);\n if (settings.restore_on_error)\n restoreOriginalAttrs(element, attrsSrcSrcsetSizes);\n if (!goingNative)\n checkFinish(settings, instance);\n};\nvar addOneShotEventListeners = (element, settings, instance) => {\n const elementToListenTo = getTempImage(element) || element;\n if (hasEventListeners(elementToListenTo)) {\n return;\n }\n const _loadHandler = (event) => {\n loadHandler(event, element, settings, instance);\n removeEventListeners(elementToListenTo);\n };\n const _errorHandler = (event) => {\n errorHandler(event, element, settings, instance);\n removeEventListeners(elementToListenTo);\n };\n addEventListeners(elementToListenTo, _loadHandler, _errorHandler);\n};\nvar loadBackground = (element, settings, instance) => {\n addTempImage(element);\n addOneShotEventListeners(element, settings, instance);\n saveOriginalBackgroundStyle(element);\n setBackground(element, settings, instance);\n setMultiBackground(element, settings, instance);\n setImgsetBackground(element, settings, instance);\n};\nvar loadRegular = (element, settings, instance) => {\n addOneShotEventListeners(element, settings, instance);\n setSources(element, settings, instance);\n};\nvar load = (element, settings, instance) => {\n if (hasLoadEvent(element)) {\n loadRegular(element, settings, instance);\n } else {\n loadBackground(element, settings, instance);\n }\n};\nvar loadNative = (element, settings, instance) => {\n element.setAttribute(\"loading\", \"lazy\");\n addOneShotEventListeners(element, settings, instance);\n setSourcesNative(element, settings);\n setStatus(element, statusNative);\n};\nvar removeImageAttributes = (element) => {\n element.removeAttribute(SRC);\n element.removeAttribute(SRCSET);\n element.removeAttribute(SIZES);\n};\nvar resetSourcesImg = (element) => {\n forEachPictureSource(element, (sourceTag) => {\n removeImageAttributes(sourceTag);\n });\n removeImageAttributes(element);\n};\nvar restoreImg = (imgEl) => {\n forEachPictureSource(imgEl, (sourceEl) => {\n restoreOriginalAttrs(sourceEl, attrsSrcSrcsetSizes);\n });\n restoreOriginalAttrs(imgEl, attrsSrcSrcsetSizes);\n};\nvar restoreVideo = (videoEl) => {\n forEachVideoSource(videoEl, (sourceEl) => {\n restoreOriginalAttrs(sourceEl, attrsSrc);\n });\n restoreOriginalAttrs(videoEl, attrsSrcPoster);\n videoEl.load();\n};\nvar restoreIframe = (iframeEl) => {\n restoreOriginalAttrs(iframeEl, attrsSrc);\n};\nvar restoreObject = (objectEl) => {\n restoreOriginalAttrs(objectEl, attrsData);\n};\nvar restoreFunctions = {\n IMG: restoreImg,\n IFRAME: restoreIframe,\n VIDEO: restoreVideo,\n OBJECT: restoreObject\n};\nvar restoreAttributes = (element) => {\n const restoreFunction = restoreFunctions[element.tagName];\n if (!restoreFunction) {\n restoreOriginalBgImage(element);\n return;\n }\n restoreFunction(element);\n};\nvar resetClasses = (element, settings) => {\n if (hasEmptyStatus(element) || hasStatusNative(element)) {\n return;\n }\n removeClass(element, settings.class_entered);\n removeClass(element, settings.class_exited);\n removeClass(element, settings.class_applied);\n removeClass(element, settings.class_loading);\n removeClass(element, settings.class_loaded);\n removeClass(element, settings.class_error);\n};\nvar restore = (element, settings) => {\n restoreAttributes(element);\n resetClasses(element, settings);\n resetStatus(element);\n deleteOriginalAttrs(element);\n};\nvar cancelLoading = (element, entry, settings, instance) => {\n if (!settings.cancel_on_exit)\n return;\n if (!hasStatusLoading(element))\n return;\n if (element.tagName !== \"IMG\")\n return;\n removeEventListeners(element);\n resetSourcesImg(element);\n restoreImg(element);\n removeClass(element, settings.class_loading);\n updateLoadingCount(instance, -1);\n resetStatus(element);\n safeCallback(settings.callback_cancel, element, entry, instance);\n};\nvar onEnter = (element, entry, settings, instance) => {\n const dontLoad = hadStartedLoading(element);\n setStatus(element, statusEntered);\n addClass(element, settings.class_entered);\n removeClass(element, settings.class_exited);\n unobserveEntered(element, settings, instance);\n safeCallback(settings.callback_enter, element, entry, instance);\n if (dontLoad)\n return;\n load(element, settings, instance);\n};\nvar onExit = (element, entry, settings, instance) => {\n if (hasEmptyStatus(element))\n return;\n addClass(element, settings.class_exited);\n cancelLoading(element, entry, settings, instance);\n safeCallback(settings.callback_exit, element, entry, instance);\n};\nvar tagsWithNativeLazy = [\"IMG\", \"IFRAME\", \"VIDEO\"];\nvar shouldUseNative = (settings) => settings.use_native && \"loading\" in HTMLImageElement.prototype;\nvar loadAllNative = (elements, settings, instance) => {\n elements.forEach((element) => {\n if (tagsWithNativeLazy.indexOf(element.tagName) === -1) {\n return;\n }\n loadNative(element, settings, instance);\n });\n setToLoadCount(instance, 0);\n};\nvar isIntersecting = (entry) => entry.isIntersecting || entry.intersectionRatio > 0;\nvar getObserverSettings = (settings) => ({\n root: settings.container === document ? null : settings.container,\n rootMargin: settings.thresholds || settings.threshold + \"px\"\n});\nvar intersectionHandler = (entries, settings, instance) => {\n entries.forEach(\n (entry) => isIntersecting(entry) ? onEnter(entry.target, entry, settings, instance) : onExit(entry.target, entry, settings, instance)\n );\n};\nvar observeElements = (observer, elements) => {\n elements.forEach((element) => {\n observer.observe(element);\n });\n};\nvar updateObserver = (observer, elementsToObserve) => {\n resetObserver(observer);\n observeElements(observer, elementsToObserve);\n};\nvar setObserver = (settings, instance) => {\n if (shouldUseNative(settings)) {\n return;\n }\n instance._observer = new IntersectionObserver((entries) => {\n intersectionHandler(entries, settings, instance);\n }, getObserverSettings(settings));\n};\nvar toArray = (nodeSet) => Array.prototype.slice.call(nodeSet);\nvar queryElements = (settings) => settings.container.querySelectorAll(settings.elements_selector);\nvar excludeManagedElements = (elements) => toArray(elements).filter(hasEmptyStatus);\nvar hasError = (element) => hasStatusError(element);\nvar filterErrorElements = (elements) => toArray(elements).filter(hasError);\nvar getElementsToLoad = (elements, settings) => excludeManagedElements(elements || queryElements(settings));\nvar retryLazyLoad = (settings, instance) => {\n const errorElements = filterErrorElements(queryElements(settings));\n errorElements.forEach((element) => {\n removeClass(element, settings.class_error);\n resetStatus(element);\n });\n instance.update();\n};\nvar setOnlineCheck = (settings, instance) => {\n if (!runningOnBrowser) {\n return;\n }\n instance._onlineHandler = () => {\n retryLazyLoad(settings, instance);\n };\n window.addEventListener(\"online\", instance._onlineHandler);\n};\nvar resetOnlineCheck = (instance) => {\n if (!runningOnBrowser) {\n return;\n }\n window.removeEventListener(\"online\", instance._onlineHandler);\n};\nvar LazyLoad = function(customSettings, elements) {\n const settings = getExtendedSettings(customSettings);\n this._settings = settings;\n this.loadingCount = 0;\n setObserver(settings, this);\n setOnlineCheck(settings, this);\n this.update(elements);\n};\nLazyLoad.prototype = {\n update: function(givenNodeset) {\n const settings = this._settings;\n const elementsToLoad = getElementsToLoad(givenNodeset, settings);\n setToLoadCount(this, elementsToLoad.length);\n if (isBot) {\n this.loadAll(elementsToLoad);\n return;\n }\n if (shouldUseNative(settings)) {\n loadAllNative(elementsToLoad, settings, this);\n return;\n }\n updateObserver(this._observer, elementsToLoad);\n },\n destroy: function() {\n if (this._observer) {\n this._observer.disconnect();\n }\n resetOnlineCheck(this);\n queryElements(this._settings).forEach((element) => {\n deleteOriginalAttrs(element);\n });\n delete this._observer;\n delete this._settings;\n delete this._onlineHandler;\n delete this.loadingCount;\n delete this.toLoadCount;\n },\n loadAll: function(elements) {\n const settings = this._settings;\n const elementsToLoad = getElementsToLoad(elements, settings);\n elementsToLoad.forEach((element) => {\n unobserve(element, this);\n load(element, settings, this);\n });\n },\n restoreAll: function() {\n const settings = this._settings;\n queryElements(settings).forEach((element) => {\n restore(element, settings);\n });\n }\n};\nLazyLoad.load = (element, customSettings) => {\n const settings = getExtendedSettings(customSettings);\n load(element, settings);\n};\nLazyLoad.resetStatus = (element) => {\n resetStatus(element);\n};\nif (runningOnBrowser) {\n autoInitialize(LazyLoad, window.lazyLoadOptions);\n}\n\n// src/icons/sidebar.ts\nfunction sidebarSVG(namespace) {\n const NS = \"http://www.w3.org/2000/svg\";\n const $svg = document.createElementNS(NS, \"svg\");\n $svg.setAttribute(\"class\", `${namespace}-footer-icon-sidebar`);\n $svg.setAttribute(\"viewBox\", \"0 0 64 64\");\n const $path = document.createElementNS(NS, \"path\");\n $path.setAttribute(\"fill\", \"currentColor\");\n $path.setAttribute(\"d\", \"M50 8H14c-3.309 0-6 2.691-6 6v36c0 3.309 2.691 6 6 6h36c3.309 0 6-2.691 6-6V14c0-3.309-2.691-6-6-6zM12 50V14c0-1.103.897-2 2-2h8v40h-8c-1.103 0-2-.897-2-2zm40 0c0 1.103-.897 2-2 2H26V12h24c1.103 0 2 .897 2 2z\");\n $svg.appendChild($path);\n return $svg;\n}\n\n// src/icons/arrow-left.ts\nfunction arrowLeftSVG(namespace) {\n const NS = \"http://www.w3.org/2000/svg\";\n const $svg = document.createElementNS(NS, \"svg\");\n $svg.setAttribute(\"class\", `${namespace}-footer-icon-arrow-left`);\n $svg.setAttribute(\"viewBox\", \"0 0 500 500\");\n const $path = document.createElementNS(NS, \"path\");\n $path.setAttribute(\"fill\", \"currentColor\");\n $path.setAttribute(\"d\", \"M177.81 249.959L337.473 90.295c2.722-2.865 2.651-7.378-.143-10.1-2.793-2.65-7.163-2.65-9.956 0l-164.75 164.75c-2.793 2.793-2.793 7.306 0 10.1l164.75 164.75c2.865 2.722 7.378 2.65 10.099-.143 2.651-2.794 2.651-7.163 0-9.957L177.809 249.959z\");\n $svg.appendChild($path);\n return $svg;\n}\n\n// src/icons/arrow-right.ts\nfunction arrowRightSVG(namespace) {\n const NS = \"http://www.w3.org/2000/svg\";\n const $svg = document.createElementNS(NS, \"svg\");\n $svg.setAttribute(\"class\", `${namespace}-footer-icon-arrow-right`);\n $svg.setAttribute(\"viewBox\", \"0 0 500 500\");\n const $path = document.createElementNS(NS, \"path\");\n $path.setAttribute(\"fill\", \"currentColor\");\n $path.setAttribute(\"d\", \"M322.19 250.041L162.527 409.705c-2.722 2.865-2.651 7.378.143 10.1 2.793 2.65 7.163 2.65 9.956 0l164.75-164.75c2.793-2.793 2.793-7.306 0-10.1l-164.75-164.75c-2.865-2.722-7.378-2.65-10.099.143-2.651 2.794-2.651 7.163 0 9.957l159.664 159.736z\");\n $svg.appendChild($path);\n return $svg;\n}\n\n// src/preload.ts\nvar _Preload = class _Preload {\n constructor(pages) {\n this.pages = pages;\n // 正在加载的链接\n this.loadingLinks = /* @__PURE__ */ new Map();\n // 需要预加载的链接集合\n this.preloadMap = /* @__PURE__ */ new Map();\n // 当前触摸的索引\n this.touchIndex = 0;\n this.preloadSize = 0;\n this.preloadMap = new Map(pages.map((e, index) => [index, {\n src: e.src,\n state: 0 /* unloaded */\n }]));\n this.preloadSize = this.preloadMap.size;\n this.touch(0, true);\n }\n touch(index, force = false) {\n if (index >= this.preloadSize) {\n this.touchIndex = 0;\n } else {\n this.touchIndex = index;\n }\n const value = this.preloadMap.get(this.touchIndex);\n if (value && value.state === 0 /* unloaded */) {\n this.createLink(this.touchIndex, force);\n }\n if (this.loadingLinks.size < _Preload.maxLinks) {\n const willLoad = [...this.preloadMap.entries()].find(([i, e]) => i > this.touchIndex && e.state !== 1 /* loaded */);\n if (willLoad) {\n this.requestAsyncCallBack(() => {\n this.touch(willLoad[0], false);\n }, 100);\n }\n }\n }\n createLink(index, force = false) {\n const value = this.preloadMap.get(index);\n if (force) {\n this.destroySomeLink(index);\n }\n if (value) {\n if (value.state === 1 /* loaded */) {\n return 1 /* loaded */;\n }\n const curlink = this.loadingLinks.get(index);\n if (curlink) {\n if (curlink.isForce !== force) {\n curlink.isForce = force;\n this.loadingLinks.set(index, curlink);\n }\n return 0 /* unloaded */;\n }\n if (this.loadingLinks.size > _Preload.maxLinks) {\n return 0 /* unloaded */;\n }\n const linkDom = document.createElement(\"link\");\n linkDom.rel = \"preload\";\n linkDom.as = \"image\";\n linkDom.href = value.src;\n linkDom.dataset.order = index + \"\";\n document.head.appendChild(linkDom);\n linkDom.onload = () => {\n const value2 = this.preloadMap.get(index);\n if (value2) {\n value2.state = 1 /* loaded */;\n this.preloadMap.set(index, value2);\n document.head.contains(linkDom) && document.head.removeChild(linkDom);\n this.loadingLinks.delete(index);\n this.touch(this.touchIndex + 1, false);\n }\n };\n linkDom.onerror = () => {\n const value2 = this.preloadMap.get(index);\n if (value2 == null ? void 0 : value2.src) {\n linkDom.href = value2.src;\n }\n };\n this.loadingLinks.set(index, {\n link: linkDom,\n isForce: force\n });\n value.state = 0 /* unloaded */;\n this.preloadMap.set(index, value);\n return 0 /* unloaded */;\n }\n return 2 /* error */;\n }\n destroySomeLink(excludeIndex) {\n for (const [index, { link }] of this.loadingLinks) {\n if (excludeIndex !== void 0 && index === excludeIndex) {\n continue;\n }\n document.head.contains(link) && document.head.removeChild(link);\n this.loadingLinks.delete(index);\n }\n }\n async requestAsyncCallBack(callBack, timeout) {\n await new Promise(function(resolve) {\n if (window.requestIdleCallback) {\n requestIdleCallback(() => {\n resolve(1);\n }, { timeout });\n } else {\n setTimeout(() => {\n resolve(2);\n }, timeout);\n }\n });\n callBack();\n }\n dispose() {\n this.destroySomeLink();\n this.preloadMap.clear();\n }\n};\n_Preload.maxLinks = 5;\nvar Preload = _Preload;\n\n// src/presentation.ts\nvar Presentation = class {\n constructor(config) {\n this.namespace = \"netless-app-presentation\";\n this.dispose = disposableStore();\n this.initialized = false;\n this.showPreview = false;\n this.pageIndex = 0;\n this.previewLazyload = null;\n this.timer = null;\n this.justDocsViewReadonly = false;\n var _a;\n this.pages = config.pages;\n this.preload = new Preload(this.pages);\n if (config.thumbnail)\n this.thumbnail = config.thumbnail;\n this.dispose.add(this.preload);\n this.readonly = (_a = config.readonly) != null ? _a : false;\n this.dom = document.createElement(\"div\");\n this.dom.className = this.namespace;\n this.contentDOM = document.createElement(\"div\");\n this.contentDOM.className = this.c(\"content\");\n this.previewDOM = document.createElement(\"div\");\n this.previewDOM.className = this.c(\"preview\");\n this.whiteboardDOM = document.createElement(\"div\");\n this.whiteboardDOM.className = this.c(\"wb-view\");\n this.footerDOM = document.createElement(\"div\");\n this.footerDOM.className = this.c(\"footer\");\n this.pageNumberInputDOM = document.createElement(\"input\");\n this.pageNumberInputDOM.className = this.c(\"page-number-input\");\n this.initialize();\n }\n setDocsViewReadonly(readonly) {\n this.justDocsViewReadonly = readonly;\n }\n initialize() {\n var _a;\n if (this.initialized)\n return;\n this.initialized = true;\n this.dispose.add(() => {\n var _a2;\n return (_a2 = this.previewLazyload) == null ? void 0 : _a2.destroy();\n });\n this.contentDOM.classList.toggle(this.c(\"readonly\"), this.readonly);\n this.dom.appendChild(this.contentDOM);\n const previewMask = this.contentDOM.appendChild(document.createElement(\"div\"));\n previewMask.className = this.c(\"preview-mask\");\n this.dispose.add(listen(previewMask, \"click\", (ev) => {\n if (this.readonly)\n return;\n if (ev.target == previewMask) {\n this.togglePreview(false);\n }\n }));\n this.contentDOM.appendChild(this.previewDOM);\n this.previewDOM.classList.add(\"tele-fancy-scrollbar\");\n const c_previewPage = this.c(\"preview-page\");\n const c_previewPageName = this.c(\"preview-page-name\");\n for (let index = 0; index < this.pages.length; ++index) {\n const page = this.pages[index];\n const previewSRC = page.thumbnail || this.thumbnail(page.src);\n const previewPage = document.createElement(\"a\");\n previewPage.className = `${c_previewPage} ${this.c(`preview-page-${index}`)}`;\n previewPage.setAttribute(\"href\", \"#\");\n previewPage.dataset.pageIndex = String(index);\n const img = document.createElement(\"img\");\n img.width = page.width;\n img.height = page.height;\n img.dataset.src = previewSRC;\n img.dataset.pageIndex = String(index);\n const name = document.createElement(\"span\");\n name.className = c_previewPageName;\n name.textContent = String(index + 1);\n name.dataset.pageIndex = String(index);\n previewPage.appendChild(img);\n previewPage.appendChild(name);\n this.previewDOM.appendChild(previewPage);\n }\n (_a = this.previewLazyload) == null ? void 0 : _a.update();\n this.dispose.add(listen(this.previewDOM, \"click\", (ev) => {\n var _a2;\n if (this.readonly)\n return;\n const pageIndex = (_a2 = ev.target.dataset) == null ? void 0 : _a2.pageIndex;\n if (pageIndex) {\n ev.preventDefault();\n ev.stopPropagation();\n ev.stopImmediatePropagation();\n this.onNewPageIndex(Number(pageIndex), \"preview\");\n this.togglePreview(false);\n }\n }));\n this.updateImage();\n this.contentDOM.appendChild(this.whiteboardDOM);\n this.footerDOM.classList.toggle(this.c(\"readonly\"), this.readonly);\n this.dom.appendChild(this.footerDOM);\n const btnSidebar = document.createElement(\"button\");\n btnSidebar.className = `${this.c(\"footer-btn\")} ${this.c(\"btn-sidebar\")}`;\n btnSidebar.appendChild(sidebarSVG(this.namespace));\n this.footerDOM.appendChild(btnSidebar);\n this.dispose.add(listen(btnSidebar, \"click\", () => {\n if (this.readonly)\n return;\n this.togglePreview();\n }));\n const pageJumps = document.createElement(\"div\");\n pageJumps.className = this.c(\"page-jumps\");\n this.footerDOM.appendChild(pageJumps);\n const btnPageBack = document.createElement(\"button\");\n btnPageBack.className = `${this.c(\"footer-btn\")} ${this.c(\"btn-page-back\")}`;\n btnPageBack.appendChild(arrowLeftSVG(this.namespace));\n pageJumps.appendChild(btnPageBack);\n this.dispose.add(listen(btnPageBack, \"click\", () => {\n if (this.readonly)\n return;\n if (this.pageIndex > 0)\n this.onNewPageIndex(this.pageIndex - 1, \"navigation\");\n }));\n const btnPageNext = document.createElement(\"button\");\n btnPageNext.className = `${this.c(\"footer-btn\")} ${this.c(\"btn-page-next\")}`;\n btnPageNext.appendChild(arrowRightSVG(this.namespace));\n pageJumps.appendChild(btnPageNext);\n this.dispose.add(listen(btnPageNext, \"click\", () => {\n if (this.readonly)\n return;\n if (this.pageIndex < this.pages.length - 1)\n this.onNewPageIndex(this.pageIndex + 1, \"navigation\");\n }));\n const pageNumber = document.createElement(\"div\");\n pageNumber.className = this.c(\"page-number\");\n this.footerDOM.appendChild(pageNumber);\n pageNumber.appendChild(this.pageNumberInputDOM);\n this.pageNumberInputDOM.value = String(this.pageIndex + 1);\n this.pageNumberInputDOM.disabled = this.readonly;\n this.dispose.add(listen(this.pageNumberInputDOM, \"focus\", () => {\n if (this.readonly)\n return;\n this.pageNumberInputDOM.select();\n }));\n this.dispose.add(listen(this.pageNumberInputDOM, \"change\", () => {\n if (this.readonly)\n return;\n if (this.pageNumberInputDOM.value) {\n this.onNewPageIndex(Number(this.pageNumberInputDOM.value) - 1, \"input\");\n }\n }));\n const totalPage = document.createElement(\"span\");\n totalPage.textContent = ` / ${this.pages.length}`;\n pageNumber.appendChild(totalPage);\n this.dispose.add(listen(window, \"keydown\", (ev) => {\n if (this.readonly || this.isEditable(ev.target) || this.justDocsViewReadonly)\n return;\n if ((ev.key == \"ArrowUp\" || ev.key == \"ArrowLeft\") && this.pageIndex > 0)\n this.onNewPageIndex(this.pageIndex - 1, \"keydown\");\n else if ((ev.key == \"ArrowDown\" || ev.key == \"ArrowRight\") && this.pageIndex < this.pages.length - 1)\n this.onNewPageIndex(this.pageIndex + 1, \"keydown\");\n }));\n }\n setDOM(dom) {\n if (this.dom == dom)\n return;\n dom.appendChild(this.contentDOM);\n dom.appendChild(this.footerDOM);\n this.dom = dom;\n }\n setReadonly(readonly) {\n if (this.readonly == readonly)\n return;\n this.contentDOM.classList.toggle(this.c(\"readonly\"), readonly);\n this.footerDOM.classList.toggle(this.c(\"readonly\"), readonly);\n this.pageNumberInputDOM.disabled = readonly;\n this.togglePreview(false);\n this.readonly = readonly;\n }\n setPageIndex(pageIndex) {\n if (Number.isSafeInteger(pageIndex)) {\n this.pageIndex = pageIndex;\n this.pageNumberInputDOM.value = String(pageIndex + 1);\n this.updateImage();\n }\n }\n togglePreview(showPreview) {\n this.showPreview = showPreview != null ? showPreview : !this.showPreview;\n this.contentDOM.classList.toggle(this.c(\"preview-active\"), this.showPreview);\n if (this.showPreview) {\n const previewPageDOM = this.previewDOM.querySelector(\".\" + this.c(`preview-page-${this.pageIndex}`));\n if (previewPageDOM) {\n this.previewLazyload || (this.previewLazyload = new LazyLoad({\n container: this.previewDOM,\n elements_selector: `.${this.c(\"preview-page>img\")}`\n }));\n this.previewDOM.scrollTo({ top: previewPageDOM.offsetTop - 16 });\n }\n }\n }\n // [origin] means the cause:\n // - navigation: user clicked on the left / right button on footer\n // - input: user filled the bottom-right page number input box\n // - preview: user clicked on the left preview menu's item\n // - keydown: this navigation is caused by user press left or right\n // Fastboard dispatchDocsEvent() triggers the \"navigation\" and \"input\" cause\n onNewPageIndex(index, _origin) {\n if (0 <= index && index < this.pages.length) {\n this.setPageIndex(index);\n }\n }\n page() {\n return this.pages[this.pageIndex];\n }\n updateImage() {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n this.timer = setTimeout(() => {\n this.timer = null;\n this.preload.touch(this.pageIndex, true);\n }, 200);\n }\n /** Returns a modified URL that points to the thumbnail image. */\n thumbnail(src) {\n try {\n const url = new URL(src);\n url.searchParams.set(\"x-oss-process\", \"image/resize,l_50\");\n return url.toString();\n } catch (err) {\n console.error(err);\n return src;\n }\n }\n c(className) {\n return `${this.namespace}-${className}`;\n }\n isEditable(el) {\n if (!el)\n return false;\n const { tagName } = el;\n return tagName == \"INPUT\" || tagName == \"TEXTAREA\" || tagName == \"SELECT\";\n }\n};\n\n// src/style.scss?inline\nvar style_default = \".netless-app-presentation{height:100%;display:flex;flex-flow:column nowrap}.netless-app-presentation-content{position:relative;height:100%;overflow:hidden}.netless-app-presentation-preview-mask{display:none;position:absolute;z-index:200;top:0;left:0;width:100%;height:100%}.netless-app-presentation-preview{display:flex;flex-direction:column;align-items:center;position:absolute;z-index:300;top:0;left:0;width:33%;max-width:200px;height:100%;padding-top:10px;transform:translate(-100%);background:#ededf0e6;box-shadow:inset -1px 0 #0000001c;transition:transform .4s;overflow:auto;overflow-y:scroll}.netless-app-presentation-preview-active .netless-app-presentation-preview-mask{display:block}.netless-app-presentation-preview-active .netless-app-presentation-preview{transform:translate(0)}.netless-app-presentation-preview-page{position:relative;display:block;width:55%;margin-bottom:10px;font-size:0;color:#0000;outline:none;border:7px solid rgba(0,0,0,0);border-radius:4px;transition:border-color .3s;user-select:none}.netless-app-presentation-preview-page:hover,.netless-app-presentation-preview-page.netless-app-presentation-preview-page-active{border-color:#444e601a}.netless-app-presentation-preview-page>img{width:100%;height:auto;box-sizing:border-box;border:1px solid rgba(0,0,0,.5);border-radius:1px;background-color:#fff;box-shadow:0 2px 8px #0000004d}.netless-app-presentation-preview-page-name{position:absolute;top:1px;left:-10px;transform:translate(-100%);text-align:right;font-size:12px;color:#5f5f5f;user-select:none}.netless-app-presentation-footer{box-sizing:border-box;height:26px;display:flex;align-items:center;padding:0 16px;border-top:1px solid #eeeef7;color:#191919}.netless-app-presentation-float-footer{width:100%;min-height:26px;position:absolute;left:0;bottom:0;z-index:2000;background:#f9f9fce6;transition:opacity .4s}.netless-app-presentation-footer-btn{box-sizing:border-box;width:26px;height:26px;font-size:0;margin:0;padding:3px;border:none;border-radius:1px;outline:none;color:currentColor;background:#0000;transition:background .4s;cursor:pointer;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.netless-app-presentation-footer-btn:hover{background:#ededf0e6}@media (hover: none){.netless-app-presentation-footer-btn:hover{background:#0000!important}}.netless-app-presentation-footer-btn>svg{width:100%;height:100%}.netless-app-presentation-footer-btn>svg:nth-of-type(2){display:none}.netless-app-presentation-footer-btn.netless-app-presentation-footer-btn-playing>svg:nth-of-type(1){display:none}.netless-app-presentation-footer-btn.netless-app-presentation-footer-btn-playing>svg:nth-of-type(2){display:initial}.netless-app-presentation-footer-btn~.netless-app-presentation-footer-btn{margin-left:15px}.netless-app-presentation-page-jumps{flex:1;display:flex;justify-content:center;align-items:center}.netless-app-presentation-page-number{margin-left:auto;font-size:13px;user-select:none;white-space:nowrap;word-break:keep-all}.netless-app-presentation-page-number-input{border:none;outline:none;width:3em;margin:0;padding:0 2px;text-align:right;font-size:13px;line-height:1;font-weight:400;font-family:inherit;border-radius:2px;color:currentColor;background:#0000;transition:background .4s;user-select:text;-webkit-tap-highlight-color:rgba(0,0,0,0)}.netless-app-presentation-page-number-input:hover,.netless-app-presentation-page-number-input:focus,.netless-app-presentation-page-number-input:active{background:#fff;box-shadow:#63636333 0 2px 8px}.netless-app-presentation-readonly.netless-app-presentation-footer{display:none}.netless-app-presentation-wb-view{position:absolute;top:0;left:0;width:100%;height:100%;z-index:100;overflow:hidden;transition:opacity .2s}.netless-app-presentation-image{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.netless-app-presentation-image>img{max-width:100%;max-height:100%;object-fit:contain}.telebox-color-scheme-dark .netless-app-presentation-page-number-input{color:#a6a6a8}.telebox-color-scheme-dark .netless-app-presentation-page-number-input:active,.telebox-color-scheme-dark .netless-app-presentation-page-number-input:focus,.telebox-color-scheme-dark .netless-app-presentation-page-number-input:hover{color:#222}.telebox-color-scheme-dark .netless-app-presentation-footer{color:#a6a6a8;background:#2d2d33;border-top:none}.telebox-color-scheme-dark .netless-app-presentation-footer-btn:hover{background:#212126}.telebox-color-scheme-dark .netless-app-presentation-preview{background:#323232e6}.netless-app-presentation-scrollbar-container{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:101}.netless-app-presentation-scrollbar-container-x,.netless-app-presentation-scrollbar-container-y{position:absolute;pointer-events:none;display:flex;justify-content:center;box-sizing:border-box;padding:0}.netless-app-presentation-scrollbar-container-x{bottom:0;left:0;height:6px;width:100%;padding-right:6px}.netless-app-presentation-scrollbar-container-y{top:0;right:0;width:6px;height:100%;flex-direction:column;padding-bottom:6px}.netless-app-presentation-scrollbar-x,.netless-app-presentation-scrollbar-y{border-radius:2px;background-color:#1b1f4d4d;pointer-events:auto;cursor:default}.netless-app-presentation-scrollbar-x{height:6px}.netless-app-presentation-scrollbar-y{width:6px}\";\n\n// src/store.ts\nfunction noop() {\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || a && typeof a === \"object\" || typeof a === \"function\";\n}\nfunction readable(value, start = noop) {\n let stop;\n const subscribers = /* @__PURE__ */ new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) {\n for (const run of subscribers) {\n run(value);\n }\n }\n }\n }\n function subscribe(run) {\n subscribers.add(run);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run(value);\n return () => {\n subscribers.delete(run);\n if (subscribers.size === 0) {\n stop && stop();\n stop = void 0;\n }\n };\n }\n function reaction(run) {\n subscribers.add(run);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n return () => {\n subscribers.delete(run);\n if (subscribers.size === 0) {\n stop && stop();\n stop = void 0;\n }\n };\n }\n function dispose2(new_value) {\n if (new_value !== void 0) {\n set(new_value);\n }\n subscribers.clear();\n stop && stop();\n stop = void 0;\n }\n return {\n get value() {\n if (subscribers.size === 0) {\n stop = start(set) || noop;\n stop();\n stop = void 0;\n }\n return value;\n },\n subscribe,\n reaction,\n dispose: dispose2\n };\n}\n\n// src/scrollbar/Draggable.ts\nfunction makeDraggable(element, options) {\n let currentDragger = null;\n let originalMouseX = 0;\n let originalMouseY = 0;\n const { onDragEnd, onDrag, onDragStart, direction = \"xy\" } = options;\n const drag = (e, state) => {\n e.stopPropagation();\n if (!currentDragger)\n return;\n let transformedDragX = 0;\n let transformedDragY = 0;\n if (direction === \"x\") {\n transformedDragX = Math.round(e.pageX - originalMouseX);\n } else if (direction === \"y\") {\n transformedDragY = Math.round(e.pageY - originalMouseY);\n } else {\n transformedDragX = Math.round(e.pageX - originalMouseX);\n transformedDragY = Math.round(e.pageY - originalMouseY);\n }\n if (state === 3 /* END */) {\n onDragEnd == null ? void 0 : onDragEnd({ x: transformedDragX, y: transformedDragY });\n } else {\n onDrag == null ? void 0 : onDrag({ x: transformedDragX, y: transformedDragY });\n }\n };\n element.addEventListener(\"pointerdown\", bindDrag);\n function bindDrag(e) {\n currentDragger = e.target;\n e.stopPropagation();\n if (currentDragger !== element) {\n return;\n }\n originalMouseX = e.pageX;\n originalMouseY = e.pageY;\n element.addEventListener(\"pointermove\", drag);\n document.body.addEventListener(\"pointerup\", stopDrag);\n document.body.addEventListener(\"pointercancel\", stopDrag);\n element.setPointerCapture(e.pointerId);\n onDragStart == null ? void 0 : onDragStart();\n }\n function removeEventListener2() {\n currentDragger = null;\n element.removeEventListener(\"pointermove\", drag);\n document.body.removeEventListener(\"pointerup\", stopDrag);\n document.body.removeEventListener(\"pointercancel\", stopDrag);\n }\n function stopDrag(e) {\n if (!currentDragger)\n return;\n e.stopPropagation();\n drag(e, 3 /* END */);\n removeEventListener2();\n }\n function destroy() {\n stop();\n element.removeEventListener(\"pointerdown\", bindDrag);\n }\n function stop() {\n removeEventListener2();\n }\n return { destroy };\n}\n\n// src/scrollbar/index.ts\nvar import_debounce = __toESM(require_debounce());\nvar import_isNumber = __toESM(require_isNumber());\nvar Scrollbar = class {\n constructor(container, option, view) {\n this.namespace = \"netless-app-presentation\";\n this.scrollContainer = document.createElement(\"div\");\n this.option = {\n appId: \"\",\n getPageSize: () => {\n return {\n width: 0,\n height: 0\n };\n },\n getWritable: () => false,\n getOriginScale: () => 1,\n syncView: () => void 0\n };\n this.onCameraUpdated = (0, import_debounce.default)(() => {\n var _a, _b;\n if (this.readonly)\n return;\n const { scale, centerX, centerY } = this.view.camera;\n const originScale = this.option.getOriginScale();\n const { width: pageWidth, height: pageHeight } = this.option.getPageSize();\n const { width: viewWidth, height: viewHeight } = this.view.size;\n const originScaleX = viewWidth / pageWidth;\n const originScaleY = viewHeight / pageHeight;\n const ratioX = Math.min(Math.round(originScaleX / scale * 100) / 100, 1);\n const ratioY = Math.min(Math.round(originScaleY / scale * 100) / 100, 1);\n const scrollX = Math.round(centerX * originScaleX);\n const scrollY = Math.round(centerY * originScaleY);\n if (this.scrollbarX) {\n this.scrollbarX.style.width = `${ratioX * 100}%`;\n this.scrollbarX.style.display = ratioX === 1 ? \"none\" : \"block\";\n this.scrollbarX.style.transform = `translateX(${scrollX}px)`;\n }\n if (this.scrollbarY) {\n this.scrollbarY.style.height = `${ratioY * 100}%`;\n this.scrollbarY.style.display = ratioY === 1 ? \"none\" : \"block\";\n this.scrollbarY.style.transform = `translateY(${scrollY}px)`;\n }\n (_b = (_a = this.option.scrollbarEventCallback) == null ? void 0 : _a.onScrollCameraUpdated) == null ? void 0 : _b.call(_a, this.appId, originScale, scale);\n }, 50);\n this.onDragStart = () => {\n var _a, _b;\n const camera = this.view.camera;\n this.cameraCache = {\n centerX: camera.centerX,\n centerY: camera.centerY,\n scale: camera.scale\n };\n (_b = (_a = this.option.scrollbarEventCallback) == null ? void 0 : _a.onScrollbarDragStart) == null ? void 0 : _b.call(_a);\n };\n this.onDragX = (transformedDrag) => {\n var _a, _b;\n if (this.cameraCache) {\n const { x } = transformedDrag;\n const { width: pageWidth } = this.option.getPageSize();\n const { width: viewWidth } = this.view.size;\n const originScaleX = viewWidth / pageWidth;\n const { minX, maxX } = this.getScrollXRange(this.cameraCache);\n const scrollX = Math.round(x / originScaleX);\n let centerX = scrollX + this.cameraCache.centerX;\n if (centerX < minX) {\n centerX = minX;\n } else if (centerX > maxX) {\n centerX = maxX;\n }\n this.view.moveCamera({\n centerX,\n animationMode: \"immediately\"\n });\n (_b = (_a = this.option.scrollbarEventCallback) == null ? void 0 : _a.onScrollbarDragY) == null ? void 0 : _b.call(_a, centerX);\n }\n };\n this.onDragY = (transformedDrag) => {\n var _a, _b;\n if (this.cameraCache) {\n const { y } = transformedDrag;\n const { height: pageHeight } = this.option.getPageSize();\n const { height: viewHeight } = this.view.size;\n const originScaleY = viewHeight / pageHeight;\n const { minY, maxY } = this.getScrollYRange(this.cameraCache);\n const scrollY = Math.round(y / originScaleY);\n let centerY = scrollY + this.cameraCache.centerY;\n if (centerY < minY) {\n centerY = minY;\n } else if (centerY > maxY) {\n centerY = maxY;\n }\n this.view.moveCamera({\n centerY,\n animationMode: \"immediately\"\n });\n (_b = (_a = this.option.scrollbarEventCallback) == null ? void 0 : _a.onScrollbarDragY) == null ? void 0 : _b.call(_a, centerY);\n }\n };\n this.onDragEnd = () => {\n var _a, _b;\n this.cameraCache = void 0;\n this.option.syncView();\n (_b = (_a = this.option.scrollbarEventCallback) == null ? void 0 : _a.onScrollbarDragEnd) == null ? void 0 : _b.call(_a);\n };\n this.moveCamera = (camera) => {\n const { centerX, centerY, scale } = camera;\n const cacheCamera = this.view.camera;\n const _camera = {};\n if ((0, import_isNumber.default)(centerX)) {\n const { minX, maxX } = this.getScrollXRange(cacheCamera);\n let newCenterX = centerX;\n if (centerX < minX) {\n newCenterX = minX;\n } else if (centerX > maxX) {\n newCenterX = maxX;\n }\n _camera.centerX = newCenterX;\n }\n if ((0, import_isNumber.default)(centerY)) {\n const { minY, maxY } = this.getScrollYRange(cacheCamera);\n let newCenterY = centerY;\n if (centerY < minY) {\n newCenterY = minY;\n } else if (centerY > maxY) {\n newCenterY = maxY;\n }\n _camera.centerY = newCenterY;\n }\n if ((0, import_isNumber.default)(scale)) {\n let newScale = scale;\n const originScale = this.option.getOriginScale();\n if (scale < originScale) {\n newScale = originScale;\n }\n _camera.scale = newScale;\n }\n this.view.moveCamera(__spreadProps(__spreadValues({}, _camera), {\n animationMode: \"immediately\"\n }));\n this.option.syncView();\n };\n this.scrollContainer.className = this.c(\"scrollbar-container\");\n this.container = container;\n this.option = option;\n this.appId = option.appId;\n this.readonly = option.readonly || false;\n this.view = view;\n this.init();\n }\n c(className) {\n return `${this.namespace}-${className}`;\n }\n setReadonly(bol) {\n this.readonly = bol;\n this.destroy();\n if (!this.readonly) {\n this.init();\n }\n }\n getScrollXRange(camera) {\n const { width: pageWidth } = this.option.getPageSize();\n const { width: viewWidth } = this.view.size;\n const originScaleX = viewWidth / pageWidth;\n const scale = camera.scale;\n const ratio = Math.min(Math.round(originScaleX / scale * 100) / 100, 1);\n const scrollWidth = pageWidth * (1 - ratio);\n const minX = -scrollWidth / 2;\n const maxX = scrollWidth / 2;\n return { minX, maxX };\n }\n getScrollYRange(camera) {\n const { height: pageHeight } = this.option.getPageSize();\n const { height: viewHeight } = this.view.size;\n const originScaleY = viewHeight / pageHeight;\n const scale = camera.scale;\n const ratio = Math.min(Math.round(originScaleY / scale * 100) / 100, 1);\n const scrollHeight = pageHeight * (1 - ratio);\n const minY = -scrollHeight / 2;\n const maxY = scrollHeight / 2;\n return { minY, maxY };\n }\n init() {\n this.scrollbarX = document.createElement(\"div\");\n this.scrollbarX.classList.add(this.c(\"scrollbar-x\"));\n if (this.option.getWritable()) {\n this.draggableX = makeDraggable(this.scrollbarX, {\n direction: \"x\",\n onDrag: this.onDragX,\n onDragEnd: this.onDragEnd,\n onDragStart: this.onDragStart\n });\n }\n Object.assign(this.scrollbarX.style, {\n width: \"100%\",\n display: \"none\"\n });\n this.scrollbarContainerX = document.createElement(\"div\");\n this.scrollbarContainerX.classList.add(this.c(\"scrollbar-container-x\"));\n this.scrollbarContainerX.appendChild(this.scrollbarX);\n this.scrollbarY = document.createElement(\"div\");\n this.scrollbarY.classList.add(this.c(\"scrollbar-y\"));\n if (this.option.getWritable()) {\n this.draggableY = makeDraggable(this.scrollbarY, {\n direction: \"y\",\n onDrag: this.onDragY,\n onDragEnd: this.onDragEnd,\n onDragStart: this.onDragStart\n });\n }\n Object.assign(this.scrollbarY.style, {\n height: \"100%\",\n display: \"none\"\n });\n this.scrollbarContainerY = document.createElement(\"div\");\n this.scrollbarContainerY.classList.add(this.c(\"scrollbar-container-y\"));\n this.scrollbarContainerY.appendChild(this.scrollbarY);\n this.scrollContainer.append(this.scrollbarContainerX, this.scrollbarContainerY);\n this.container.appendChild(this.scrollContainer);\n this.view.callbacks.on(\"onCameraUpdated\", this.onCameraUpdated);\n this.onCameraUpdated();\n }\n destroy() {\n this.view.callbacks.off(\"onCameraUpdated\", this.onCameraUpdated);\n if (this.scrollbarX && this.scrollbarContainerX) {\n this.scrollbarContainerX.removeChild(this.scrollbarX);\n this.scrollbarX.remove();\n this.scrollbarContainerX.remove();\n this.scrollbarX = void 0;\n }\n if (this.scrollbarY && this.scrollbarContainerY) {\n this.scrollbarContainerY.removeChild(this.scrollbarY);\n this.scrollbarY.remove();\n this.scrollbarContainerY.remove();\n this.scrollbarY = void 0;\n }\n if (this.draggableX) {\n this.draggableX.destroy();\n this.draggableX = void 0;\n }\n if (this.draggableY) {\n this.draggableY.destroy();\n this.draggableY = void 0;\n }\n }\n};\n\n// src/app-presentation.ts\nvar import_debounce2 = __toESM(require_debounce());\nvar emptySceneName = \"$$empty$$\";\nvar ppt2page = (ppt, name) => ppt ? { width: ppt.width, height: ppt.height, src: ppt.src, thumbnail: ppt.previewURL, name } : null;\nvar createLogger = (room) => {\n if (room && room.logger) {\n return (...args) => room.logger.info(...args);\n } else {\n return (...args) => console.log(...args);\n }\n};\nvar scenesEqual = (scenes1, scenes2) => {\n if (!scenes1 || !scenes2) {\n return false;\n }\n if (scenes1.length !== scenes2.length)\n return false;\n return scenes1.every((scene, index) => {\n var _a, _b, _c, _d, _e, _f;\n const scene2 = scenes2[index];\n return scene.name === scene2.name && ((_a = scene.ppt) == null ? void 0 : _a.width) === ((_b = scene2.ppt) == null ? void 0 : _b.width) && ((_c = scene.ppt) == null ? void 0 : _c.height) === ((_d = scene2.ppt) == null ? void 0 : _d.height) && ((_e = scene.ppt) == null ? void 0 : _e.src) === ((_f = scene2.ppt) == null ? void 0 : _f.src);\n });\n};\nvar NetlessAppPresentation = {\n kind: \"Presentation\",\n setup(context) {\n var _a, _b, _c;\n const view = context.getView();\n if (!view)\n throw new Error(\"[Presentation]: no whiteboard view, make sure you have added options.scenePath in addApp()\");\n const pages = (_a = context.getScenes()) == null ? void 0 : _a.map(({ ppt, name }) => ppt2page(ppt, name)).filter(Boolean);\n if (!pages || pages.length === 0)\n throw new Error(\"[Presentation]: empty scenes, make sure you have added options.scenes in addApp()\");\n if (pages[0].src.startsWith(\"ppt\"))\n throw new Error(\"[Presentation]: legacy dynamic PPT is unsupported, please use the projector converter and @netless/slide to render it\");\n const scenePath = context.getInitScenePath();\n const options = context.getAppOptions() || {};\n let maxCameraScale = (_b = options.maxCameraScale) != null ? _b : 3;\n if (!(Number.isFinite(maxCameraScale) && maxCameraScale > 0)) {\n console.warn(`[Presentation] maxCameraScale should be a positive number, got ${options.maxCameraScale}`);\n maxCameraScale = 3;\n }\n const log = options.log || createLogger(context.getRoom());\n log(`[Presentation] new ${context.appId}`);\n const dispose2 = disposableStore();\n dispose2.add(() => log(`[Presentation] dispose ${context.appId}`));\n const view$$ = context.createStorage(\"view\", { uid: \"\", originX: 0, originY: 0, width: 0, height: 0 });\n const _addScenePathListener = (name, listener) => {\n const windowManger = context.manager.windowManger;\n windowManger.emitter.on(name, listener);\n return () => windowManger == null ? void 0 : windowManger.emitter.off(name, listener);\n };\n const getPageIndex = (view2) => {\n const focusScenePath = view2.focusScenePath;\n const name = focusScenePath == null ? void 0 : focusScenePath.split(\"/\").pop();\n let _pageIndex = pages.findIndex((page, index) => {\n var _a2;\n const n = (_a2 = page.name) != null ? _a2 : String(index + 1);\n return n === name;\n });\n if (_pageIndex === -1) {\n _pageIndex = 0;\n }\n return _pageIndex;\n };\n let pageIndex = getPageIndex(view);\n const pageIndex$ = readable(pageIndex, (set) => {\n set(pageIndex);\n return _addScenePathListener(\"onAppScenePathChange\", (payload) => {\n const { appId } = payload;\n if (appId === context.appId) {\n const _pageIndex = getPageIndex(payload.view);\n set(_pageIndex);\n }\n });\n });\n dispose2.add(() => {\n pageIndex$.dispose();\n });\n if (context.isAddApp) {\n if (pages.length > 100)\n console.warn(`[Presentation]: too many pages (${pages.length}), may cause performance issues`);\n let redirectResolve = void 0;\n const room2 = context.getRoom();\n if (room2 && room2.isWritable) {\n const scenes = room2.entireScenes()[scenePath];\n if (pageIndex$.value < 0 || pageIndex$.value >= pages.length) {\n throw new Error(`[Presentation] Invalid page index: ${pageIndex$.value}, scenes length: ${pages.length}`);\n }\n new Promise((resolve) => {\n const { name, ppt } = scenes[pageIndex$.value];\n redirectResolve = resolve;\n const _scenes = pages.map((p, index) => {\n var _a2;\n return {\n name: (_a2 = p.name) != null ? _a2 : String(index + 1),\n ppt: { width: p.width, height: p.height, src: p.src }\n };\n });\n if (!scenesEqual(scenes, _scenes)) {\n room2.removeScenes(scenePath);\n room2.putScenes(scenePath, _scenes);\n }\n if (name === _scenes[pageIndex$.value].name && !ppt) {\n context.addPage({ scene: { name: emptySceneName } }).then(() => {\n log(`[Presentation] setup setScenePath ${scenePath}/${emptySceneName}`);\n context.setScenePath(`${scenePath}/${emptySceneName}`).then(() => {\n redirectResolve && redirectResolve(true);\n });\n });\n } else {\n redirectResolve && redirectResolve(false);\n }\n }).then(async (bol) => {\n await syncPage(pageIndex$.value, room2.logger);\n if (bol) {\n log(`[Presentation] setup removeScenes ${scenePath}/${emptySceneName}`);\n room2.removeScenes(`${scenePath}/${emptySceneName}`);\n }\n });\n }\n }\n const me = ((_c = context.getRoom()) == null ? void 0 : _c.uid) || context.getDisplayer().observerId + \"\";\n let throttleSyncView = 0;\n const syncPage = async (index, logger) => {\n var _a2;\n if (!context.getIsWritable())\n return;\n const scenes = context.getDisplayer().entireScenes()[scenePath];\n if (!scenes)\n return;\n const p = pages[index];\n const name = (_a2 = p.name) != null ? _a2 : String(index + 1);\n if (!scenes.some((scene) => scene.name === name)) {\n await context.addPage({ scene: { name, ppt: { width: p.width, height: p.height, src: p.src } } });\n }\n if (logger) {\n logger.info(`[Presentation] syncPage ${scenePath}/${name}`);\n }\n await context.setScenePath(`${scenePath}/${name}`);\n };\n const jumpPage = (index) => {\n var _a2;\n if (!context.getIsWritable()) {\n console.warn(\"[Presentation]: no permission, make sure you have test room.isWritable\");\n return false;\n }\n if (!(0 <= index && index < pages.length)) {\n console.warn(`[Presentation]: page ${index + 1} out of bounds [1, ${pages.length}]`);\n return false;\n }\n const scenes = context.getDisplayer().entireScenes()[scenePath];\n if (!scenes) {\n console.warn(`[Presentation]: no scenes found at ${scenePath}, make sure you have added options.scenePath in addApp()`);\n return false;\n }\n const p = pages[index];\n const name = (_a2 = p.name) != null ? _a2 : String(index + 1);\n if (!scenes.some((scene) => scene.name === name)) {\n context.addPage({ scene: { name, ppt: { width: p.width, height: p.height, src: p.src } } });\n }\n syncPage(index);\n return true;\n };\n const prevPage = () => jumpPage(pageIndex$.value - 1);\n const nextPage = () => jumpPage(pageIndex$.value + 1);\n const pageState = () => ({ index: pageIndex$.value, length: pages.length });\n const scaleDocsToFit = () => {\n const { width, height } = app.page() || {};\n if (width && height) {\n view.moveCameraToContain({\n originX: -width / 2,\n originY: -height / 2,\n width,\n height,\n animationMode: \"immediately\"\n });\n const maxScale = view.camera.scale * (options.disableCameraTransform ? 1 : maxCameraScale);\n const minScale = view.camera.scale;\n view.setCameraBound({\n damping: 1,\n maxContentMode: () => maxScale,\n minContentMode: () => minScale,\n centerX: 0,\n centerY: 0,\n width,\n height\n });\n syncViewFromRemote(true);\n }\n };\n const syncView = () => {\n if (context.getIsWritable()) {\n if (options.debounceSync) {\n clearTimeout(throttleSyncView);\n throttleSyncView = 0;\n }\n if (throttleSyncView > 0)\n return;\n const { width, height } = app.page() || {};\n if (width && height) {\n throttleSyncView = setTimeout(() => {\n throttleSyncView = 0;\n const { camera, size } = view;\n const fixedW = Math.min(size.width, size.height * width / height);\n const fixedH = Math.min(size.height, size.width * height / width);\n const w = fixedW / camera.scale;\n const h = fixedH / camera.scale;\n const x = camera.centerX - w / 2;\n const y = camera.centerY - h / 2;\n view$$.setState({ uid: me, originX: x, originY: y, width: w, height: h });\n }, 50);\n }\n }\n };\n dispose2.add(() => {\n clearTimeout(throttleSyncView);\n throttleSyncView = 0;\n });\n const syncViewFromRemote = (force = false, animate = false) => {\n const { uid, originX, originY, width, height } = view$$.state;\n if ((force || uid !== me) && width > 0 && height > 0) {\n view.moveCameraToContain({\n originX,\n originY,\n width,\n height,\n animationMode: animate ? \"continuous\" : \"immediately\"\n });\n }\n };\n dispose2.add(view$$.addStateChangedListener(() => syncViewFromRemote(false, true)));\n const getPageSize = () => {\n const { width, height } = app.page() || {};\n return { width: width || 0, height: height || 0 };\n };\n const box = context.getBox();\n const app = dispose2.add(createPresentation(box, pages, jumpPage, pageIndex$, view, options.thumbnail, options.useClipView));\n app.contentDOM.dataset.appPresentationVersion = \"0.1.10\";\n app.scaleDocsToFit = scaleDocsToFit;\n app.log = log;\n if (options.justDocsViewReadonly) {\n app.setDocsViewReadonly(true);\n }\n const room = context.getRoom();\n const goToPageByClick = () => {\n var _a2, _b2, _c2, _d;\n const currentApplianceName = (_d = (_c2 = (_b2 = (_a2 = context.getRoom()) == null ? void 0 : _a2.state) == null ? void 0 : _b2.memberState) == null ? void 0 : _c2.currentApplianceName) != null ? _d : \"\";\n if (!app.readonly && currentApplianceName === \"clicker\") {\n nextPage();\n }\n };\n if (room && options.goToPageByClick && app.whiteboardDOM) {\n dispose2.make(() => {\n app.whiteboardDOM.addEventListener(\"click\", goToPageByClick);\n return () => app.whiteboardDOM.removeEventListener(\"click\", goToPageByClick);\n });\n }\n context.mountView(app.whiteboardDOM);\n if (options.disableCameraTransform) {\n view.disableCameraTransform = true;\n }\n scaleDocsToFit();\n dispose2.make(() => {\n view.callbacks.on(\"onSizeUpdated\", scaleDocsToFit);\n return () => view.callbacks.off(\"onSizeUpdated\", scaleDocsToFit);\n });\n if (options.viewport && context.isAddApp && app.page()) {\n const page = app.page();\n const viewport = typeof options.viewport === \"function\" ? options.viewport(page) : options.viewport;\n const fix = (i, x) => i == 0 ? i : i <= 1 ? i * x : i;\n view$$.setState({\n uid: me,\n originX: fix(viewport.x, page.width) - page.width / 2,\n originY: fix(viewport.y, page.height) - page.height / 2,\n width: fix(viewport.width, page.width),\n height: fix(viewport.height, page.height)\n });\n }\n dispose2.make(() => {\n view.callbacks.on(\"onCameraUpdatedByDevice\", syncView);\n return () => view.callbacks.off(\"onCameraUpdatedByDevice\", syncView);\n });\n syncViewFromRemote(true);\n dispose2.add(context.emitter.on(\"writableChange\", (isWritable) => {\n app.setReadonly(!isWritable);\n }));\n const getOriginScale = () => {\n const { size } = view;\n const { width, height } = getPageSize();\n return Math.min(size.height / height, size.width / width);\n };\n const getScale = () => {\n return view.camera.scale;\n };\n const screenshotCurrentPageAsync = async (_context, _width, _height) => {\n var _a2, _b2;\n (_b2 = (_a2 = room == null ? void 0 : room.calibrationTimestamp) == null ? void 0 : _a2.toString()) != null ? _b2 : Date.now().toString();\n const currentPage = pages[pageIndex$.value];\n if (!currentPage) {\n throw new Error(\"[Presentation]: current page not found\");\n }\n const { width, height, src } = currentPage;\n const img = document.createElement(\"img\");\n img.width = width;\n img.height = height;\n img.crossOrigin = \"Anonymous\";\n await new Promise((resolve) => {\n img.onload = resolve;\n img.src = src;\n });\n _context.drawImage(img, 0, 0, width, height, 0, 0, _width || width, _height || height);\n const currentScenePath = view.focusScenePath;\n if (!currentScenePath) {\n throw new Error(\"[Presentation]: current scene path not found\");\n }\n const windowManger = context.getWindowManager();\n if (windowManger._appliancePlugin) {\n await windowManger._appliancePlugin.screenshotToCanvasAsync(_context, currentScenePath, _width || width, _height || height, {\n centerX: 0,\n centerY: 0,\n scale: _width && _height ? Math.min(_width / width, _height / height) : 1\n });\n } else {\n await view.screenshotToCanvasAsync(_context, currentScenePath, _width || width, _height || height, {\n centerX: 0,\n centerY: 0,\n scale: _width && _height ? Math.min(_width / width, _height / height) : 1\n });\n }\n };\n let scrollbar;\n if (options.useScrollbar) {\n dispose2.make(() => {\n scrollbar = new Scrollbar(app.contentDOM, {\n appId: context.appId,\n getPageSize,\n getOriginScale,\n syncView,\n getWritable: () => context.getIsWritable(),\n scrollbarEventCallback: options.scrollbarEventCallback\n }, view);\n return () => scrollbar == null ? void 0 : scrollbar.destroy();\n });\n }\n const moveCamera = (camera) => {\n if (context.getIsWritable() && scrollbar) {\n if (!scrollbar) {\n throw new Error(\"[Presentation]: moveCamera must be called when appOptions: useScrollbar is true\");\n }\n scrollbar.moveCamera(camera);\n return;\n }\n throw new Error(\"[Presentation]: moveCamera must be called in writable room\");\n };\n context.emitter.on(\"destroy\", () => dispose2());\n const reportProgress = (progress, result) => {\n window.postMessage({ type: \"@netless/_result_save_pdf_\", appId: context.appId, progress, result }, \"*\");\n return result;\n };\n const base64url = async (url) => {\n try {\n const a = new URL(url);\n a.searchParams.set(\"t\", Date.now().toString());\n url = a.toString();\n } catch (e) {\n }\n const data = await fetch(url);\n if (!data.ok)\n throw new Error(`[Presentation]: failed to fetch ${url} - ${await data.text()}`);\n const blob = await data.blob();\n const reader = new FileReader();\n return new Promise((resolve, reject) => {\n reader.onload = () => resolve(reader.result);\n reader.onerror = () => reject(reader.error);\n reader.readAsDataURL(blob);\n });\n };\n const toPdf = async () => {\n var _a2;\n const MAX = 1920;\n const firstPage = pages[0];\n const { width, height } = firstPage;\n let pdfWidth = Math.floor(width), pdfHeight = Math.floor(height);\n if (pdfWidth > MAX) {\n pdfWidth = MAX;\n pdfHeight = Math.floor(height * pdfWidth / width);\n }\n if (pdfHeight > MAX) {\n pdfHeight = MAX;\n pdfWidth = Math.floor(width * pdfHeight / height);\n }\n const scenes = context.getDisplayer().entireScenes()[scenePath];\n const stage_canvas = document.createElement(\"canvas\");\n stage_canvas.width = pdfWidth;\n stage_canvas.height = pdfHeight;\n const stage = stage_canvas.getContext(\"2d\");\n const wb_canvas = document.createElement(\"canvas\");\n wb_canvas.width = pdfWidth;\n wb_canvas.height = pdfHeight;\n const wb = wb_canvas.getContext(\"2d\");\n if (!wb || !stage)\n return reportProgress(100, null);\n const { jsPDF } = await import('jspdf');\n const pdf = new jsPDF({\n format: [firstPage.width, firstPage.height],\n orientation: firstPage.width > firstPage.height ? \"l\" : \"p\",\n compress: true\n });\n for (let index = 0; index < pages.length; ++index) {\n const p = pages[index];\n const { width: width2, height: height2, src } = p;\n const url = await base64url(src);\n const img = document.createElement(\"img\");\n await new Promise((resolve) => {\n img.onload = resolve;\n img.src = url;\n });\n stage.drawImage(img, 0, 0);\n wb.clearRect(0, 0, pdfWidth, pdfHeight);\n const name = (_a2 = p.name) != null ? _a2 : String(index + 1);\n if (scenes.some((scene) => scene.name == name)) {\n const camera = { centerX: 0, centerY: 0, scale: Math.min(wb_canvas.width / width2, wb_canvas.height / height2) };\n const sPath = `${scenePath}/${name}`;\n const windowManger = context.getWindowManager();\n if (windowManger._appliancePlugin) {\n await windowManger._appliancePlugin.screenshotToCanvasAsync(wb, sPath, wb_canvas.width, wb_canvas.height, camera);\n } else {\n await view.screenshotToCanvasAsync(\n wb,\n sPath,\n wb_canvas.width,\n wb_canvas.height,\n camera\n );\n }\n try {\n const wb_url = wb_canvas.toDataURL(\"image/png\");\n const wb_img = document.createElement(\"img\");\n await new Promise((resolve) => {\n wb_img.onload = resolve;\n wb_img.src = wb_url;\n });\n stage.drawImage(wb_img, 0, 0, pdfWidth, pdfHeight);\n } catch (err) {\n console.warn(err);\n }\n }\n const output = stage_canvas.toDataURL(\"image/jpeg\", 0.6);\n if (index > 0)\n pdf.addPage();\n pdf.addImage(output, \"JPEG\", 0, 0, pdfWidth, pdfHeight, \"\", \"FAST\");\n stage.clearRect(0, 0, pdfWidth, pdfHeight);\n const progress = Math.ceil((index + 1) / pages.length * 100);\n if (progress < 100)\n reportProgress(progress, null);\n }\n const data = pdf.output(\"arraybuffer\");\n const title = box.title;\n return reportProgress(100, { pdf: data, title });\n };\n dispose2.add(listen(window, \"message\", (ev) => {\n if (ev.data && ev.data.type == \"@netless/_request_save_pdf_\" && ev.data.appId == context.appId) {\n toPdf().catch((err) => {\n console.warn(err);\n reportProgress(100, null);\n });\n }\n }));\n const setDocsViewReadonly = (bol) => {\n app.setDocsViewReadonly(bol);\n };\n const setReadonly = (bol) => {\n app.setReadonly(bol);\n if (options.goToPageByClick) ;\n if (scrollbar) {\n scrollbar.setReadonly(bol);\n }\n };\n const controller = { app, view, context, jumpPage, prevPage, nextPage, pageState, toPdf, log, setDocsViewReadonly, setReadonly, moveCamera, getOriginScale, getScale, getPageSize, screenshotCurrentPageAsync };\n dispose2.add(listen(window, \"message\", (ev) => {\n if (ev.data === \"@netless/_presentation_\") {\n if (typeof window !== \"undefined\")\n dispose2.make(() => {\n const debug = window._presentation_ || (window._presentation_ = /* @__PURE__ */ new Set());\n debug.add(controller);\n return () => debug.delete(controller);\n });\n console.log(controller);\n }\n }));\n return controller;\n }\n};\nvar AppPresentation = class extends Presentation {\n constructor(config) {\n super(config);\n this.jumpPage = config.jumpPage;\n }\n updateImage() {\n super.updateImage();\n }\n onNewPageIndex(index, origin) {\n if (origin === \"keydown\" && this.box && !this.box.focus)\n return;\n if (this.log)\n this.log(\"[Presentation] user navigate to\", index + 1, `(${origin})`);\n if (0 <= index && index < this.pages.length) {\n this.jumpPage(index);\n } else {\n console.warn(`[Presentation]: page index ${index} out of bounds [0, ${this.pages.length - 1}]`);\n }\n }\n};\nfunction createPresentation(box, pages, jumpPage, pageIndex$, view, thumbnail, useClipView) {\n box.mountStyles(style_default);\n const app = new AppPresentation({ pages, readonly: box.readonly, jumpPage, thumbnail });\n app.box = box;\n box.mountContent(app.contentDOM);\n box.mountFooter(app.footerDOM);\n app.dispose.add(pageIndex$.subscribe((pageIndex) => {\n app.setPageIndex(pageIndex);\n }));\n if (useClipView && view) {\n const onCameraUpdatedEffectForMaskView = (0, import_debounce2.default)(() => {\n const { width: pageWidth, height: pageHeight } = app.page() || {};\n if (!pageWidth || !pageHeight) {\n return;\n }\n const { scale } = view.camera;\n const { width, height } = view.size;\n const pageRatioX = Math.round((1 - pageWidth * scale / width) / 2 * 100);\n const pageRatioY = Math.round((1 - pageHeight * scale / height) / 2 * 100);\n app.whiteboardDOM.style.clipPath = `inset(${pageRatioY}% ${pageRatioX}%)`;\n }, 50);\n onCameraUpdatedEffectForMaskView();\n const onCameraUpdatedEffect = () => {\n view.callbacks.on(\"onSizeUpdated\", onCameraUpdatedEffectForMaskView);\n view.callbacks.on(\"onCameraUpdated\", onCameraUpdatedEffectForMaskView);\n return () => {\n view.callbacks.off(\"onCameraUpdated\", onCameraUpdatedEffectForMaskView);\n view.callbacks.off(\"onSizeUpdated\", onCameraUpdatedEffectForMaskView);\n };\n };\n app.dispose.make(onCameraUpdatedEffect);\n }\n return app;\n}\nvar install = (register, options = {}) => {\n let app = NetlessAppPresentation;\n if (options.as) {\n app = Object.assign({}, app, { kind: options.as });\n }\n return register({ kind: app.kind, src: app, appOptions: options.appOptions });\n};\n\n// src/index.ts\nvar version = \"0.1.10\";\n\nexport { NetlessAppPresentation, Presentation, Scrollbar, NetlessAppPresentation as default, install, version };\n//# sourceMappingURL=index.mjs.map\n"],"names":["__create","__defProp","__defProps","__getOwnPropDesc","__getOwnPropDescs","__getOwnPropNames","__getOwnPropSymbols","__getProtoOf","__hasOwnProp","__propIsEnum","__defNormalProp","obj","key","value","__spreadValues","a","b","prop","__spreadProps","__commonJS","cb","mod","__copyProps","to","from","except","desc","__toESM","isNodeMode","target","require_isObject","exports","module","isObject","type","require_freeGlobal","freeGlobal","require_root","freeSelf","root","require_now","now","require_trimmedEndIndex","reWhitespace","trimmedEndIndex","string","index","require_baseTrim","reTrimStart","baseTrim","require_Symbol","Symbol2","require_getRawTag","objectProto","hasOwnProperty","nativeObjectToString","symToStringTag","getRawTag","isOwn","tag","unmasked","result","require_objectToString","objectToString","require_baseGetTag","nullTag","undefinedTag","baseGetTag","require_isObjectLike","isObjectLike","require_isSymbol","symbolTag","isSymbol","require_toNumber","NAN","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","toNumber","other","isBinary","require_debounce","FUNC_ERROR_TEXT","nativeMax","nativeMin","debounce3","func","wait","options","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","time","args","thisArg","leadingEdge","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","timeWaiting","shouldInvoke","trailingEdge","cancel","flush","debounced","isInvoking","require_isNumber","numberTag","isNumber2","isFn","isDisposable","dispose","disposable","e","isAbortable","disposableStore","disposables","disposableStore2","_a","_b","size2","has2","add","make3","remove3","flush2","_addOne","executor","addEventListener","listener","listen","runningOnBrowser","isBot","isHiDpi","defaultSettings","getExtendedSettings","customSettings","createInstance","classObj","event","eventString","instance","autoInitialize","i","optionsItem","SRC","SRCSET","SIZES","POSTER","ORIGINALS","DATA","statusLoading","statusLoaded","statusApplied","statusEntered","statusError","statusNative","dataPrefix","statusDataName","getData","element","attribute","setData","attrName","getStatus","setStatus","status","resetStatus","hasEmptyStatus","hasStatusLoading","hasStatusError","hasStatusNative","statusesAfterLoading","hadStartedLoading","safeCallback","callback","arg1","arg2","arg3","addClass","className","removeClass","addTempImage","deleteTempImage","getTempImage","unobserve","observer","resetObserver","unobserveEntered","settings","updateLoadingCount","delta","decreaseToLoadCount","setToLoadCount","isSomethingLoading","haveElementsToLoad","getSourceTags","parentTag","sourceTags","childTag","forEachPictureSource","fn","parent","forEachVideoSource","attrsSrc","attrsSrcPoster","attrsSrcSrcsetSizes","attrsData","hasOriginalAttrs","getOriginalAttrs","deleteOriginalAttrs","setOriginalsObject","attributes","originals","saveOriginalBackgroundStyle","setOrResetAttribute","restoreOriginalAttrs","restoreOriginalBgImage","manageApplied","manageLoading","setAttributeIfValue","setImageAttributes","setSourcesImg","imgEl","sourceTag","setSourcesIframe","iframe","setSourcesVideo","videoEl","sourceEl","setSourcesObject","object","setBackground","bg1xValue","bgHiDpiValue","bgDataValue","setMultiBackground","setImgsetBackground","bgImgSetDataValue","imgSetValues","bgImageValues","setSourcesFunctions","setSourcesNative","setSourcesFunction","setSources","elementsWithLoadEvent","hasLoadEvent","checkFinish","addEventListener2","eventName","handler","removeEventListener","hasEventListeners","addEventListeners","loadHandler2","errorHandler2","loadEventName","removeEventListeners","eventListeners","doneHandler","loadHandler","goingNative","errorHandler","addOneShotEventListeners","elementToListenTo","loadBackground","loadRegular","load","loadNative","removeImageAttributes","resetSourcesImg","restoreImg","restoreVideo","restoreIframe","iframeEl","restoreObject","objectEl","restoreFunctions","restoreAttributes","restoreFunction","resetClasses","restore","cancelLoading","entry","onEnter","dontLoad","onExit","tagsWithNativeLazy","shouldUseNative","loadAllNative","elements","isIntersecting","getObserverSettings","intersectionHandler","entries","observeElements","updateObserver","elementsToObserve","setObserver","toArray","nodeSet","queryElements","excludeManagedElements","hasError","filterErrorElements","getElementsToLoad","retryLazyLoad","setOnlineCheck","resetOnlineCheck","LazyLoad","givenNodeset","elementsToLoad","sidebarSVG","namespace","NS","$svg","$path","arrowLeftSVG","arrowRightSVG","_Preload","pages","force","willLoad","curlink","linkDom","value2","excludeIndex","link","callBack","timeout","resolve","Preload","Presentation","config","readonly","_a2","previewMask","ev","c_previewPage","c_previewPageName","page","previewSRC","previewPage","img","name","pageIndex","btnSidebar","pageJumps","btnPageBack","btnPageNext","pageNumber","totalPage","dom","showPreview","previewPageDOM","_origin","src","url","err","el","tagName","style_default","noop","safe_not_equal","readable","start","stop","subscribers","set","new_value","run","subscribe","reaction","dispose2","makeDraggable","currentDragger","originalMouseX","originalMouseY","onDragEnd","onDrag","onDragStart","direction","drag","state","transformedDragX","transformedDragY","bindDrag","stopDrag","removeEventListener2","destroy","import_debounce","import_isNumber","Scrollbar","container","option","view","scale","centerX","centerY","originScale","pageWidth","pageHeight","viewWidth","viewHeight","originScaleX","originScaleY","ratioX","ratioY","scrollX","scrollY","camera","transformedDrag","x","minX","maxX","y","minY","maxY","cacheCamera","_camera","newCenterX","newCenterY","newScale","bol","ratio","scrollWidth","scrollHeight","import_debounce2","emptySceneName","ppt2page","ppt","createLogger","room","scenesEqual","scenes1","scenes2","scene","_c","_d","_e","_f","scene2","NetlessAppPresentation","context","scenePath","maxCameraScale","log","view$$","_addScenePathListener","windowManger","getPageIndex","view2","focusScenePath","_pageIndex","pageIndex$","payload","appId","redirectResolve","room2","scenes","_scenes","p","syncPage","me","throttleSyncView","logger","jumpPage","prevPage","nextPage","pageState","scaleDocsToFit","width","height","app","maxScale","minScale","syncViewFromRemote","syncView","size","fixedW","fixedH","w","h","animate","uid","originX","originY","getPageSize","box","createPresentation","goToPageByClick","_b2","_c2","currentApplianceName","viewport","fix","isWritable","getOriginScale","getScale","screenshotCurrentPageAsync","_context","_width","_height","currentPage","currentScenePath","scrollbar","moveCamera","reportProgress","progress","base64url","data","blob","reader","reject","toPdf","firstPage","pdfWidth","pdfHeight","stage_canvas","stage","wb_canvas","wb","jsPDF","_interopNamespace","pdf","width2","height2","sPath","wb_url","wb_img","output","title","controller","debug","AppPresentation","origin","thumbnail","useClipView","onCameraUpdatedEffectForMaskView","pageRatioX","pageRatioY","onCameraUpdatedEffect","install","register","version"],"mappings":"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"}